Keš / Cache
Smyslem keše Autoloaderu je zaznamenat při prvním zjišťování cestu ke skriptu obsahujícímu danou třídu a příště již nemuset volat loadery. Ušetří se tím stovky (ne-li tisíce) volání a veškeré s tím související režie. Tedy keš je klíčová součást autoloaderu.
I keš autoloaderu je modulární. Její backend si můžete vyměnit, vyvinout vlastní. Součástí PHP Jet jeden backend a je samozřejmě používán jako výchozí.
Pokud budete potřebuvat udělat vlastní backend, stačí vytvořit třídu, která bude implementovat příslušné rozhraní.
Inicializace
Keš se inicializuje ve skriptu ~/application/Init/Cache/Autoloader.php a to konkrétně takto:
require_once SysConf_Path::getLibrary() . 'Jet/Autoloader/Cache/Backend/Files.php';
Důležité je použití SysConf_Path a klasického require!
Autoloader_Cache::init( new Autoloader_Cache_Backend_Files() );
Konfigurace
V rámci konfigurace SysConf_Jet jsou k dispozici metody isCacheAutoloaderEnabled(): bool a setCacheAutoloaderEnabled( bool $cache_autoloader_enabled ): void pro zapínání a vyinání keš autoloaderu.
V praxi to používám tak, že ve vývojovém prostředí je keš neaktivní a na produkčním naopak aktivní a pokud to situace vyžaduje, tak je potřeba při nasazení nové verze do produkce keš devalidovat (jednoduše promazat soubory).
Konfigurace je standardně ve skriptu ~/application/config/Jet.php a to konkrětně zde:
//.....................
if( SysConf_Jet::isDevelMode() ) {
//Dev configuration
//.....................
SysConf_Jet::setCacheAutoloaderEnabled( false );
//.....................
} else {
//Production configuration
//.....................
SysConf_Jet::setCacheAutoloaderEnabled( true );
//.....................
}
Použití
Pro samotné použití keše je určený kontejner Jet\Autoloader_Cache. Tedy backend se nepoužívá přímo.
V aplikačním prostoru není nutné se o keš autoloaderu starat. Systém si vše řeší vnitřně.