V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!

Zend Framework

Z Multimediaexpo.cz

Verze z 5. 8. 2011, 05:51; Sysop (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)


Zend 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žnuje 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 autentifikaci, implementuje různé druhy cache, filtrů a validatorů 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.

Obsah

Požadavky

Zend Framework od verze 1.7.0 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.0. 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 sub-systémy s podporou mnoha typů backendů jako pamět nebo soubor
Zpracování požadavku prohlížeče dle probíhajících procesů

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, SQLitea 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 datumy
  • 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živatelkých dat s velkým množstvím filtrů
  • Zend_Form - Objektový vývoj webových formulářů včetně filtrování hodnot a jejich valildace
  • 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-mailoý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. 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. 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. 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. 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 libobolném view. 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 <object>. 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“. PHP od verze 5.3 sice podporuje jmenné prostory (namespaces), z důvodu zpětné kompatibiliy zůstává ale Zend Framework ve verzi 1 bez jejich podpory. Zend Framework 2.0 by již měl 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.php 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 promenných se používá cammelCase, konstanty jsou naproti tomu psané VELKÝMI_PÍSMENY.

Reference

Návody

Externí odkazy