Zend je open sourcový Framework, který je objektově orientovaný, a je určen ke zjednodušení vývoje webových aplikací. Je implementovaný v PHP 5 a licencovaný pod New BSD licencí. Používá modulární architekturu, za pomocí níž umožňuje vývojářům využití pouze těch komponent, které zrovna potřebují.
Přesto existují částečné závislosti mezi komponentami. Zend Framework dokáže zahrnout komponenty pro MVC aplikace, autentizaci a autorizaci, implementaci různých druhů cache, validátorů a filtrů pro uživatelská data, jazykové komponenty i další. Začátek vývoje se datuje do roku 2005, kdy začalo na popularitě získávat mnoho nových frameworků jako například Ruby on Rails nebo Spring Framework. Hlavním vývojářem je Matthew Weier O’Phinney.
Vlastnosti Zend Frameworku
Veškeré komponenty jsou zcela objektově orientované a odpovídají předpokladům E_STRICT.
Modulární archikterura typu použij, co potřebuješ, vede k minimalizaci závislostí mezi komponentami.
MVC implementaci lze rozšířit s podporou layoutů a za pomoci šablonového systému.
Podpora multi-databázových systémů zahrnuje MySQL, IBM DB2, Oracle, PostgreSQL, MSSQL Server, Informix Dynamix Server a SQLite.
Podporuje kompozici e-mailů a odesílání/přijímání e-mailů skrze mbox, Maildir, POP3 nebo IMAP4.
Cache subsystémy jsou flexibilní a mají podporu mnoha typů backendů jako paměť nebo soubor.
Helpery
Helpery jsou pomocné funkce, které mají za svůj cíl usnadnit vývojářům práci. Je možné často používaný kód nebo specifickou funkcionalitu uložit do helperu a následně jej opakovaně využívat. V Zend Frameworku existují dva druhy helperů. Prvním druhem helperů jsou action helpery a druhým view helpery. Zend zároveň obsahuje některé předdefinované helpery.
Action Helpery
Mezi action helpery patří například následující typicky používané helpery:
Autocomplete. Pomáhá s automatickým doplňováním formulářů.
View Renderer. Zajišťuje, že po skončení action se vykreslí příslušné view a to bez jakéhokoliv dalšího nastavení.
Action Stack. Umožní vkládání požadavků na následné zpracování action za pomoci pluginu Actionstack.
FlashMessenger. Pomáhá s uchováním textu napříč aplikací. Umožňuje tak uchovávat informace pro opakované načtení stránky. Nevýhodou je, že si nedokáže pojmenovat prostor a je tak nutné k ukládanému textu zároveň přidat další metadata.
View Helpery
Action View. Umožní načíst danou action z controlleru a výsledek vložit do view.
Partial. Slouží k umožnění znovupoužití často opakovaných prvků ve view.
Placeholder. Napomáhá se skládáním obsahu stránek. Umožní uložení pojmenovaných dat, ke kterým je následně možné přistupovat v libovolném view.
Výhody použití Zend Frameworku
Rychlost vývoje. Zend Framework umožňuje urychlit vývoj webových aplikací.
Dema. Zend má několik různých demo ukázek, které vám pomohou se zorientovat v existujících komponentách.
Jednoduchý výběr potřebných komponent. Zend nabízí skupiny tříd, které je snadné nahrávat samostatně, kdykoliv jsou potřeba.
Objektově orientovaný. Důraz na objekt umožňuje jednoduché znovupoužití kódu, šetří tedy práci programátora.
Úpravy existujících tříd. Vývojář si může přidávat vlastní variace a přidávat svoje vlastní části kódu pro maximální specializaci.
Nevýhody použití Zend Frameworku
Méně obsáhlá dokumentace. Dokumentace je málo obsáhlá a špatně čitelná.
Radikální změny mezi jednotlivými verzemi. Pokud se chystáte přejít na novější verzi Zend Frameworku, věnujte extra porci času testování. Některé změny chování mohou mít zásadní dopad na fungování aplikace.
Chybí ORM.
Framework s názorem. Pokud vývojář začne řešit věci jinak, nežli odpovídá myšlenkovému nastavení frameworku, může docházet k velkým problémům.
Pomalý provoz. Pro většinu webových stránek je sice jeho rychlost dostatečná a často je úzkým místem databáze, ale Zend je relativně pomalý ve srovnání s jinými frameworky.
Formuláře. Formuláře je relativně náročné implementovat.