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';
Autoloader_Cache::init( new Autoloader_Cache_Backend_Files() );
Důležité je použití SysConf_Path a klasického require!

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::setCacheAutoloaderEnabledfalse );
        
//.....................
} else {
    
//Production configuration
        //.....................
    
SysConf_Jet::setCacheAutoloaderEnabledtrue );
        
//.....................
}

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ě.

Předchozí kapitola
Loader
Další kapitola
Jet\Autoloader_Cache