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;
}
}
- 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.