index.php
Súbor index.php by mal byť jediným spustiteľným súborom vo vašom projekte. Nachádza sa v adresári public/. Front controller zabezpečuje, že všetky požiadavky na webový server budú spracované pomocou tohto súboru. Index.php tiež zabezpečuje jeho konfiguráciu, ale tak isto aj konfiguráciu PHP prostredia.
// Define path to application directory define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); // Define application environment define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?getenv('APPLICATION_ENV') : 'production')); /** Zend_Application */ require_once'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();
Výpis: Vzorový súbor index.php
Riadok APPLICATION_PATH nastaví konštantu s cestou k aplikácii a APPLICATION_ENV nastaví konštantu názov serveru. Nakoniec je načítaný súbor s komponentom Zend_Application, je vytvorená inštancia triedy a sú zavolané metódy bootstrap() a run(). Starajú sa o zavedenie aplikácie a odštartovanie front controlleru. Konštruktoru triedy sú poslane cesta ku konfiguračnému súboru a definované PHP prostredie.
Bootstrap.php
Od verzie 1.8 a s príchodom Zend_Application sa spôsob konfigurácie zjednodušil a štandardizoval. Bootstrap.php slúži na konfiguráciu Zend Frameworku. Nájdete ho v adresári application/
<?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { }
Výpis: Vzorový súbor Bootstrap.php
Celá konfigurácia sa presunula do konfiguračného súboru application.ini v adresári application/config.
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 [staging:production] [testing:production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development:production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1
Výpis: Vzorový súbor application.ini
Zend_application zabezpečuje flexibilný spôsob zavádzania. V súbore application/Bootstrap.php môžete vytvoriť triedu, ktorá bude obsahovať inicializačné metódy. V praxi sa najčastejšie používa kombinácia inicializácia aj pomocou index.php aj pomocou Bootstrap.php.
Čo všetko je možné nastaviť v application.ini, index.php a Bootstrap.php sa postupne dozviete v ďalších častiach seriálu.
Zend_Application
Komponenta Zend_Application štandardizuje proces zavádzania aplikácie pre znovu použiteľné zdroje, ako sú modulovo závisle Bootstrap triedy, a kontroluje ich závislosť alebo databázové adaptéry. Taktiež zabezpečuje nastavenie PHP prostredia a automatické nahrávanie tried.
Zend_Registry
Často v aplikácii existujú objekty, ku ktorým potrebujete pristupovať. Môže to byť objekt s nejakými údajmi, ku ktorým chcete pristupovať v radiči, pohľade ale aj v modele. Taktiež to môžu byť objekty obsahujúce preklad textu. Často sa tento problém rieši tým, že sú tieto objekty uložené do globálnych premenných. V Zend frameworku je toto možne riešiť pomocou komponenty Zend_Registry.
Poskytuje vám registráciu objektu a k objektom, ktoré ste si uložili, môžete pristupovať z ľubovoľnej časti svojej aplikácie po celý čas jej behu.
$objekt = “text, string alebo pole”; Zend_Registry::set(‘premena’,$objekt); $hodnota = Zend_Registry::get (‘premena’); echo $hodnota;
V prípade potreby je možní register vyčistiť. Dochádza k odstráneniu objektov, preto treba túto metódu použivať opatrne:
Zend_Registry::_unsetInstance();
Zend_Log
Komponent Zend_Log slúži k zaznamenávaniu udalosti. Poskytuje možnosť zaznamenávanie do súboru, do databázy, ale aj posielanie emailov. Udalosti, ktoré chcete zaznamenať, majú 8 typov priorít.
úrovne logovania | popis |
DEBUG | Hlásenia o ladení |
INFO | Infromativné hlásenie |
NOTICE | Hlásenie |
WARNING | Upozornenie |
ERR | Chybové hlásenia |
CRIT | Kritické chybové hlasenia |
ALERT | Upozorňovacie hlásenie |
EMERG | Núdzové chybové hlasenie |
Tabulka1: Podporované úrovne logovania v Zend_Log
Zapisovač | Popis |
Zend_Log_Writer_Stream | Zapíše záznam do súboru, URLs … |
Zend_Log_Writer_Db | Zapíše záznam do databazy |
Zend_Log_Writer_Firebug | Zapíše záznam do Firebug konzoly |
Zend_Log_Writer_Mail | Zapíše záznam do emailu |
Zend_Log_Writer_Mock | Výsledok záznamu pošle sám seba aby sa dal použiť na testovacie účely |
Zend_Log_Writer_Null | Zapíše záznam do /dev/null |
Zend_Log_Writer_Syslog | Zapíše záznam do systemového logu (syslogd na UNIX a event viewer na Windows) |
Tabulka2: Možnosti zapisovania záznamu v Zend_Logu
Najpoužívanejšia možnosť je použitie jednoduchých logovacích súborov.
$logger = new Zend_Log(); $writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . '/../data/logs/example.log'); $logger->addWriter($writer); $format = '%timestamp%: %priorityName%: %message%' . PHP_EOL; $formatter = new Zend_Log_Formatter_Simple($format); $writer->setFormatter($formatter); $logger->log('Upozornenie', Zend_Log::ALERT);
Na začiatku je inicializovaný Zend_Log objekt. Po inicializácii nasleduje pridanie zapisovača, ktorý má v tomto príklade zapisovať do súboru (ostatné zapisovače vid tabuľka 2). Je možné vybrať aj viacej zapisovačov a zapisovať do databázy a súboru súčasne.
Moduly
Stránka, ktorú vytvárate, sa môže skladať z viacerých celkov, napríklad fórum, blog, e-shop. Pre každú túto časť stránky potrebujete vlastné radiče, modely, pohľady, ale aj konfiguračné súbory. Môžete použiť aj základnú adresárovú štruktúru, ale veľmi rýchlo by ste sa v súboroch mohli stratiť. Aby ste si v súboroch zachovali väčší prehľad, Zend Framework vám poskytuje možnosť vytvoriť si moduly. Toto je nejaká skupina radičov, modelov a pohľadov, ktoré spolu súvisia. Pre každý modul si v adresári application/modules vytvoríte svoj adresár (štandardne v application sa modules nenachádza, treba vytvoriť aj ten). Do tohto adresára vytvoríte štruktúru známu z adresára application.
V ďalšej časti seriálu si budete môcť prečítať o Radiči a o komponentoch, ktoré slúžia na prácu s ním.
Přehled komentářů