Loader
Jedná se o modul Autoloaderu, který pracuje takto:
- Určí zda je pro daný název třídy relevantní pro daný loader. Pokud ne, vrátí false a Autoloader dá příležitost dalšímu zaregistrovanému loaderu.
- Pokud je pro daný název třídy relevantní, pak sestaví cestu ke skriptu, který třídu obsahuje. To by měl provést co nejrychleji (s co nejnižší režií). Zjištěnou cestu pak vrátí jako návratovou hodnotu. Autoloader se postará o zbytek procesu nahrání třídy. To již není věcí Loaderu.
Každý loader musí dědit od třídy Jet\Autoloader_Loader.
Loadery jsou v aplikačním prostoru v adresáři ~/application/Autoloaders/. Jsou tedy předurčené k úpravám, změnám, doplňování.
Inicializace probíhá ve skriptu ~/application/Init/Autoloader.php. Tento skript je opět možné upravovat dle potřeby (aplikační prostor). Každý loader musí být "natažen" konvenčně pomocí require (a za vyžití Jet\SysConf_Path) a následně zaregistrován:
require SysConf_Path::getApplication() . 'Autoloaders/ApplicationClasses.php';
Autoloader_ApplicationClasses::register();
Předpřipravené loadery
Třída | Význam |
---|---|
JetApplication\Autoloader_Jet | Tento loader nahrává třídy knihovny Jet. Tedy dosti základní loader :-) Ve výchozím nastavení je cesta ke třídám Jet: ~/library/Jet/ a jmenný prostor je Jet |
JetApplication\Autoloader_ApplicationClasses | Úkolem tohoto loaderu je nahrávat vaše aplikační třídy. Ty, které máte v adresáři ~/application/Classes/ a jsem ve jmenném prostoru JetApplication (Poznámka: jmenný prostor aplikačního prostoru lze změnit.). Loader funguje správně za předpokladu, že dodržujete stejné uspořádání tříd jako samotná platforma Jet. Což sice doporučuji, ale vždy si můžete udělat loader vlastní. |
JetApplication\Autoloader_ApplicationModules | Jak název napovídá, tak nahrává třídy jednotlivých modulů aplikace. Ty jsou v adresáři ~/application/Modules/ a jmenných prostorech začínajících JetApplicationModule\* (každý modul má svůj jemenný prostor, kořenový jmenný prostor lze změnit) |