Zend framework: základné súbory a komponenty

Zaujíma vás, na čo slúži a index.php a Bootstrap.php? Chcete vedieť, čo je modul? Ako vám zjednoduší orientáciu vo vašej aplikácii? Aké sú základne komponenty Zend frameworku? Všetko toto sa dozviete v treťom dieli nášho seriálu.

Seriál: Začínáme se Zend Framework (3 díly)

  1. Zend Framework: Úvod do frameworku 6.8.2012
  2. Zend Framework: Hello world 20.8.2012
  3. Zend framework: základné súbory a komponenty 3.9.2012

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. 

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 29

Přehled komentářů

R unsetInstance?
https://tomasfejfar.mojeid.cz/#bLGPpVT97A Re: unsetInstance?
https://techi.mojeid.cz/#PL2P791SLx Re: unsetInstance?
5o Zend_Registry
Jan Marek Re: Zend_Registry
Astapov Re: Zend_Registry
Eda Zend vs. Nette
luki Re: Zend vs. Nette
Michal Re: Zend vs. Nette
https://tomasfejfar.mojeid.cz/#bLGPpVT97A Re: Zend vs. Nette
Martin Hassman Re: Zend vs. Nette
https://tomasfejfar.mojeid.cz/#bLGPpVT97A Re: Zend vs. Nette
https://tomasfejfar.mojeid.cz/#bLGPpVT97A Errata
HosipLan Re: Zend framework: základné súbory a komponenty
Martin Hassman Re: Zend framework: základné súbory a komponenty
Jiří Kosek Re: Zend framework: základné súbory a komponenty
Martin Hassman Re: Zend framework: základné súbory a komponenty
Jirka Re: Zend framework: základné súbory a komponenty
Martin Hassman Re: Zend framework: základné súbory a komponenty
a Re: Zend framework: základné súbory a komponenty
https://podhy.mojeid.cz/#z3IbuSxgLi Re: Zend framework: základné súbory a komponenty
povinná Re: Zend framework: základné súbory a komponenty
Paja Re: Zend framework: základné súbory a komponenty
Martin Hassman Re: Zend framework: základné súbory a komponenty
Michal Re: Zend framework: základné súbory a komponenty
Porovnání Re: Zend framework: základné súbory a komponenty
5o Re: Zend framework: základné súbory a komponenty
Martin Hassman Re: Zend framework: základné súbory a komponenty
Přezdívka Re: Zend framework: základné súbory a komponenty
Zdroj: https://www.zdrojak.cz/?p=3704