Zend Framework
Author
Albert FloresZend Framework je open source, objektově orientovaný, webový aplikační framework implementovaný v PHP 5 a licencovaný pod New BSD license. Zend Framework (často označovaný jako ZF) je vyvíjen s ohledem na jednoduchý vývoj webových aplikací. Užívá modulární architektury která umožňuje vývojářům použít jen ty komponenty, které potřebují. Částečné závislosti mezi komponentami však existují. ZF v sobě zahrnuje komponenty pro MVC aplikace, autorizaci a autentizaci, implementuje různé druhy cache, filtrů a validátorů pro uživatelská data, jazykové komponenty a mnoho dalších. Začal být vyvíjen na počátku roku 2005, kdy mnoho nových frameworků, jako Ruby on Rails a Spring Framework získávalo na popularitě. Oficiálně byl oznámen na první Zend Conference. Šéf vývojářem je Matthew Weier O'Phinney.
Požadavky
Zend Framework od verze 1. 7. +more0 vyžaduje minimálně PHP 5. 2. 4. Předchozí verze si vystačily s PHP 5. 1. 4 nebo novějšími. V produkčním prostředí však vývojáři důrazně doporučují používat PHP 5. 2. 3 nebo novější z důvodu většího zabezpečení a výkonu. Ke spuštění unit testů je vyžadována knihovna PHPUnit minimálně verze 3. Mnoho komponent také vyžaduje některá z modulových rozšíření PHP.
Vlastnosti
Všechny komponenty jsou plně objektově orientované a vyhovují direktivě E_STRICT * Modulární architektura typu užij-co-potřebuješ minimalizuje křížové závislosti mezi komponentami * Rozšiřitelná implementace MVC s podporou layoutů a šablonovacím systémem * Podpora pro multi-databázové systémy zahrnuje MySQL, Oracle, IBM DB2 MSSQL Server, PostgreSQL, SQLite a Informix Dynamix Server * Kompozice e-mailu a schopnost jej odeslat/přijmout skrze mbox, Maildir, POP3 nebo IMAP4 * Flexibilní cache subsystémy s podporou mnoha typů backendů jako paměť nebo soubor
Komponenty
Stručný výčet nejznámějších komponent frameworku:
* Zend_Acl - Jednoduchý a flexibilní systém pro správu uživatelských oprávnění * Zend_Application - Knihovna pro načtení a správu základních prvků aplikace (bootstraping) * Zend_Auth - Autentifikace uživatelů s mnoha druhy úložišť * Zend_Cache - Implementace cache systému s úložišti ve formě paměti, souboru, APC, SQLite atd. * Zend_Config - Slouží k nastavení aplikace skrze konfigurační soubory * Zend_Controller - Implementace Model-View-Controller (MVC) architektury * Zend_Date - Komponenta pro práci s daty * Zend_Db - Implementace multi-databázové vrstvy * Zend_Dojo - Knihovna pro práci s javascriptovým frameworkem Dojo * Zend_Filter - Komponenta pro filtrování uživatelských dat s velkým množstvím filtrů * Zend_Form - Objektový vývoj webových formulářů včetně filtrování hodnot a jejich validace * Zend_Layout - Správa layoutů aplikace * Zend_Log - Komponenta pro logování určitých dat s množstvím backendů * Zend_Mail - Tvorba e-mailů, správa e-mailových schránek * Zend_Memory - Podpora pro zpracování dat s omezeným množstvím dostupné paměti * Zend_OpenID - Implementace OpenID klienta i serveru * Zend_Paginator - Komponenta pro práci se stránkováním dat * Zend_Pdf - Objektový přístup a vytváření PDF souborů * Zend_Registry - Komponenta pro uchovávání objektů a hodnot v aplikační vrstvě * Zend_Translate - Podpora pro překlady a různé jazykové mutace aplikací * Zend_View - Šablonovací systém * ZendX_Jquery - Podpora javascriptoveho frameworku jQuery
Helpery
Helper je pomocná funkce, ulehčující programátorům práci. Často používaný kód či specifická funkčnost lze uložit do helperu a ten následně používat. +more Helpery v Zend Frameworku dělíme na action helpery a view helpery. První jsou používány v controllerech, druhé ve view. Zend Framework obsahuje některé předdefinované helpery.
Action helpery
ActionStack helper umožňuje vkládat požadavky na další zpracování action pomocí front controller pluginu Actionstack.
Autocomplete usnadňuje práci s automatickým doplňováním formulářů ContextSwitch a jeho specializovaná verze AjaxContext nastavuje odpověď vhodnou pro použití jiného formátu.
FlashMessenger uchovává text napříč aplikací. Umožňuje tak uchovávat výstup, který chceme použít při dalším načtení stránky. +more Nevýhodou FlashMessengeru je, že není schopen pojmenovávat prostor, proto je nutno k ukládanému textu přidávat další informace o něm (např. info|toto je info text). Nejlépe například nějakým znakem oddělit a následně pracovat s částmi řetězce.
View Renderer helper zajišťuje, že se po skončení action vykreslí příslušný view, bez dalšího nastavování. Toto chování lze samozřejmě změnit. +more Programátor tedy vytvoří v controlleru metodu action a k ní dle přijatých jmenných konvencí soubor view. O vlastní správné propojení se pak už postará framework.
View helpery
Action View Helper je schopen načíst konkrétní action z controlleru a vložit výsledek do view.
Partial Helper slouží k znovupoužití často opakovaných prvků ve view. Tento prvek je uložen ve vlastním souboru a do view vkládán pomocí tohoto helperu. +more Poskytován je také PartialLoop, který je načítán opakovaně.
Placeholder Helper je vhodný pro skládání obsahu stránek. Ukládá pojmenovaná data, ke kterým pak lze přistupovat v libovolném view. +more Skupina helperů Doctype, HeadLink, HeadMeta, HeadScript, HeadStyle, HeadTitle a InlineScript jsou pak konkrétními implementacemi Placeholder helperu.
HTML Object vkládá do view html prvky v tagu . Vhodné například pro vkládání flash animací.
JSON Helper nastavuje správnou hlavičku odpovědi a vypíná použití layoutu.
Translate Helper pomáhá při práci s vícejazyčnou aplikací. Využívá knihovnu Zend_Translate.
Jmenné konvence
Všechny soubory frameworku jsou uloženy ve dvou adresářích. Hlavní a původní adresář je Zend a druhý, sloužící pro ukládání dalších dílčích knihoven (Extras), je ZendX. +more PHP od verze 5. 3 sice podporuje jmenné prostory (namespaces), z důvodu zpětné kompatibility zůstává ale Zend Framework ve verzi 1 bez jejich podpory. Jeho následující verze (2. 0) by již měla mít plnou podporu jmenných prostorů.
Třídy se pojmenovávají podle adresářové struktury, ve které se nachází, tj. třída v souboru Zend/Foo/Bar/Baz. +morephp se bude jmenovat Zend_Foo_Bar_Baz. Všechny abstraktní třídy mají podle Zend Coding Standard mít název _Abstract (a tedy být v souboru abstract. php), veškerá rozhraní (interface) mají mít název _Interface (být v souboru interface. php).
Prefixem Zend_ mohou být podle licenčních podmínek označovány pouze třídy ze samotné distribuce Zend Frameworku.
Názvy všech chráněných (protected) a soukromých (private) metod a vlastností tříd musí začínat podtržítkem. Pro názvy všech metod a proměnných se používá cammelCase, konstanty jsou naproti tomu psané VELKÝMI_PÍSMENY.
Reference
Návody
[url=https://web. archive. +moreorg/web/20110909180956/http://www. zendframework. cz/zaciname-se-zend-frameworkem-preklad/]český překlad[/url] anglického [url=https://akrabat. com/zend-framework-tutorial]návodu[/url].
Externí odkazy
Pokračování Zend Frameworku jménem [url=https://getlaminas.org/]Laminas[/url] * [url=http://zend-framework-examples.blogspot.cz]Zend Framework příklady (ZfEx)[/url]
* [url=https://web.archive.org/web/20080331012804/http://forum.zendframework.cz/]České fórum[/url]
Kategorie:Webové aplikační frameworky Kategorie:Software v PHP Kategorie:Svobodný software Kategorie:Software pod licencí BSD