Inicializace, nastavení profileru a mikroaplikace _profiler

Inicializace

Inicializace se provádí ve skriptu ~/application/Init/Profiler.php takto: require SysConf_Path::getLibrary() . 'Jet/Debug/Profiler.php';

if( 
SysConf_Jet_Debug::getProfilerEnabled() ) {
    
$profiler_controller_path SysConf_Path::getBase() . '_profiler/Controller.php';
    if(
file_exists($profiler_controller_path)) {
        require 
$profiler_controller_path;
    }
}

Prosím povšimněte si:
  • Je nutné používat klasické require a nespoléhat se na Autoloader. Ten ve chvíli inicializace profileru ještě není aktivní. Profiler je totiž ve skutečnosti hned po základním nastavení (zejména cest k adresářům) úplně první věc, která se inicializuje a aktivuje.
  • Pro natažení Profileru stačí jeden require, který již si natáhne vše potřebné - tedy vám stačí tento krátký kus kódu.
  • Je vidět, že pokud se Profiler zapíná, tak si natahuje mikroaplikaci _profiler. Je to jedna z mikroaplikací (další je _installer a nástroje v adresáři _tools, zejména Jet Studio), které jsou součástí balíku PHP Jet. A které si samozřejmě můžete upravit dle vašich potřeb. O ní si povíme více dále.

Nastavení

Pro zapínáni a vypínání profileru jsou k dispozici metody SysConf_Jet_Debug::setProfilerEnabled( bool ) a SysConf_Jet_Debug::getProfilerEnabled(). V praxi se vypínání / zapínání (z hlediska konfigurace) v nastavení platformy Jet, tedy ve skripty ~/application/config/Jet.php.

Můžete si dle potřeb naskriptovat kdy a za jakých okolností se Profiler aktivuje. (Jen samozřejmě nesmí být neustále aktivní na produkčním prostředí, ale to připomínám jen pro pořádek ;-) )

Další nastavení a hlavně zásadní změny můžete dělat tak, že si upravíte mikroaplikaci _profiler.

Mikroaplikace _profiler

O Profileru jsem psal jako o integrovaném. Ve skutečnosti je to pravda jen částečně.

Integrováno do PHP Jet je ta část profileru, která se stará o sledování běhu aplikace a sběr informací. Ta je opravdu integrována, je to součástí samotné knihovny Jet a ostatní komponenty platformy, stejně jako aplikace volají tuto součást Jet za účelem nashromáždit potřebné běhové informace.

Co však integrováno není (a tedy je to předurčeno k plnému přizpůsobení vašim potřebám) je to co výstup profileru zobrazuje, tedy onen stavový proužek na spodku stránky, celkový výstup informací o běhu a graf volání (graf volání je výstup XHProf - nikoliv Jet Profileru).

To vše je separované a najdete to v adresáři ~/_profiler.

Určitě nemá smysl zcela podrobně popisovat celou tuto mikroaplikaci. Je to pouze pár stovek řádek kódu a nejlepší je tam nahlédnou. Ale alespoň informace o její struktuře je dobré si představit:

  • ~/_profiler/Controller.php - to je kontroler celé mikroaplikace. Tam se provádí skutečné zapnutí a nastavení Profileru a rozhoduje se o celkovém chování této mikroaplikace.
  • ~/_profiler/views/*.phtml - view skipty
  • Máme Controller, máme View, ale kde je Model? Model je Profiler samotný a především jím zachycené informace. Informace o běhu představuje třída Jet\Debug_Profiler_Run a další ji přidružené třídy. S tímto modelem mikroaplikace pracuje.

Důležitá poznámka: Název adresáře mikroapliace začíná znakem _. Připomeňme si, že by se na produkčním prostředí vůbec neměl vyskytovat a když už, tak pouze dočasně, ale nikdy ne trvale. Tato mikroaplikace je určena primárně pro vaše localhosty a vývojové servery.

Předchozí kapitola
Profiler
Další kapitola
Výstup profileru