Úvod do Zend Frameworku

31. January 2007

Pozor – článek pojednává o zastaralé verzi Zend Frameworku. Příklad na verzi Zend Frameworku 1.0 najdete v článku PHP seminář podzim 2007 (a moje první přednáška) je za námi.

Zrovna nedávno jsem měl s kolegy rozhovor o tom, že si nejraději všechno napíšou sami. Umět si napsat kvalitní kód je jistě potřebná věc, ale myslím, že umět efektivně použít stávající kvalitní řešení je minimálně stejně důležité.

To je také důvod proč jsem začal používat Zend Framework. Také díky tomuto fraworku vyvíjíme ve firmě webové stránky mnohem rychleji a kvalitněji. ZF urazil za svůj rok existence obrovský krok kupředu. Používám ho od verze 0.2, teď je aktuální verze 0.7.

Jak již bylo zmíněno na stránkách Jakuba Vrány ZF vám pomůže vytvořit kvalitní aplikaci. Obsahuje komponenty, pomocí kterých lze pokrýt většinu potřeb pro tvorbu moderního webu v PHP.

Co vám Zend Framework může nabídnout

ZF není invazivní, můžete tedy použít pouze jeho část, která vám vyhovuje. Jádrem je MVC. Pro směřování (routování) požadavků můžete použít jednoduchý Router nebo vymazlený RewriteRouter. Proč vymazlený? Nabízí úžasně flexibilní routovací možnost (po vzoru Ruby on Rails). ZF je vlastně kostra, na které můžete stavět svoje řešení. (Oba typy routerů představím v příštím článku na Hello World příkladu).

Pokud se rozhodnete použít MVC((Model View Controller – návrchový vzor pro tvorbu aplikací, kde je potřeba odpovídat na dotaz klienta) bude jádrem vaší aplikace bootstrap soubor. Obvykle nazvaný index.php. Ten slouží pro obsoužení požadavku s podle best practises je to současně jediný PHP soubor, který by měl být přístupným přímo. Ostatní PHP soubory by měly být ve chráněných adresáři (Toto lze dosáhnout pomocí nastavení v souboru .htaccess).

Ve frameworku je pro provázání komponent použit návrhový vzor Inversion of Control. Pokud se vám některá třída frameworku nelíbí je velmi snadné si naimplementovat svoje řešení. Mluvím například o Routeru, View atd. Sám používám jako view vrstvu, místo defaultních PHP stránek, Smarty template.

Vývojové nástroje

Pro PHP i Javu, ve které také programuji, používám Elipse. Open source IDE, které není třeba představovat. Díky pluginu pro PHP a Subversion lze mít v tomto jednom nástroji skutečně vše co je pro vývoj rozsáhlých PHP aplikací potřeba.

Části Zend Frameworku

V následujících odstavcích popíšu segmenty Zend Frameworku verze 0.7. Je však mnoho segmentů, které se nachází v inkubátoru (ve vývoji, které zatím nejsou součástí frameworku). Nejaktuálnější verzi frameworku lze stráhnou včetně inkubátoru ze svn http://framewor­k.zend.com/…me­work/trunk.

Segmenty Zend Frameworku

Zend
Základní třída frameworku. Obsahuje převážně statické helper metody, které jsou používání v ostatních částech frameworku.
Zend_Acl
Poskytuje ACL funkcionalitu – umožňuje nastavovat práva pro přístup k objektům.
Zend_Cache
Část, která obsahuje třídy umožňující kešování. Objektem kešování může být celá stránka, text, výsledek funkce, třída. Má bohaté možnosti nastavení.
Zend_Config
Kromě nastavení v asocivních polích v samotné PHP kódu lze framework konfigurovat i pomoci XML nabo INI souborů. V konfiguračních souborech lze například dědit z předchozích konfiguračních oddílů.
Zend_Controller
Obsahuje třídy umožňující vytvářet aplikace založené na MVC patternu. Součástí jsou také třídy, které jsou nadstavbou low level API – mám na myslí například třídu Zend_Controller_Re­quest_Http nebo Zend_Controller_Res­ponse_Http. Tuto část frameworku považuji za nejužitečnější.
Zend_Date
Obsahuje knihovny pro práci s datem a časem.
Zend_Db
Obsahuje knihovny pro práci s persistentními daty. Pro přístup k databázi je použita vrstva PDO. Jedním z nejdůležitějších tříd je Zend_Db_Table, která staví na principu, že jedna tabulka v databázi je přímo doménový objekt.
Zend_Feed
Knihovny pro zpracovávání RSS a Atom kanálů. Bohužel zde není podpora pro jejich vytváření.
Zend_Filter, Zend_Filter_Input
Obsahuje statické metody pro práci s daty. Například kontrola validního e-mailu, čísla atd. Zend_Filter_Input pracuje přímo s daty z požadavku (GET, POST, SESSION, COOKIE).
Zend_Gdata
Obsahuje třídy pro práci s online službami Google. Jsou to například Google Base pro přístup k k vyhledávání zaměstnání, výrobků, událostí atd. Dále Google Blogger, Google Calendar a Google CodeSearch.
Zend_Http
Obsahuje třídy umožňující vytvářet a zpracovávat HTTP požadavky.
Zend_Json
Obsahem tohoto segmentu jsou třídy umožňující serializaci PHP do JSON objektů a naopak. JSON může být použit například pro komunikaci mezi PHP a javascriptem, ve které jsou vytvořeny knihovny stejného typu.
Zend_Locale
Tento segment bych se stará o výstup, který je závislý na národním prostředí (ormátování data, času, peněz).
Zend_Log
Jak napovídá název stará se tento segment o logování. Můžeme používat různé úrovně logování. Najednou je možné logovat do několika logů. Logovat lze do konzole (obrazovka), souboru a databáze.
Zend_Mail
Segment usnadňující posílání e-mailů jak textových tak s přílohou. Pro posílání e-mailů lze použít vestavěnou funkci mail nebo posílat přímo přes SMTP server.
Zend_Measure
Segment sloužící k převádění jednotek z oblasti fyziky, matematiky atd.
Zend_Mime
Tento segment je používám v již zmíněném segmentu Zend_Mail. Obsahuje třídy pro práci s MIME zprávami.
Zend_Pdf
Pomocí Zend_Pdf lze vytvářet PDF dokumenty. Lze kreslit geometrické útvary, používat barvy a samozřejmě vkládat text.
Zend_Search
Velmi zajímavý segment obsahující třídy pro vyhledávání. Je založeny na oblíbeném Lucene search, který se používá v Javě.
Zend_Server_Re­flection
Tento segment obsahuje třídy usdňující provádění reflexe. Staví na reflexi PHP 5.
Zend_Service_A­mazon
Obsahuje třídy zjednodušující práci s webovými službami serveru Amazon.
Zend_Service_Flic­kr
Obsahuje třídy zjednodušující práci s webovými službami serveru Flickr.
Zend_Service_Rest
Obsahem tohoto segmentu jsou třídy tvořící REST klienta pro vykonávání dotazů REST webovými službami.
Zend_Service_Y­ahoo
Obsahuje třídy zjednodušující práci s "webovými službami serveru Yahoo.
Zend_Session
Tento segment obsahuje třídy, kterou jsou nadstavbou nad globálním polem $_SESSION.
Zend_Uri
Tento segment je hojně využíván v již zmíněném Zend_Controller. Slouží pro validaci a práci s URI.
Zend_View
Segment Zend_View obsahuje třídy, které slouží pro zobrazení výstupu. Dá se říci, že to je právě to V ze zkratky MVC.
Zend_XmlRpc
Obsahuje třídy umožňující vytvářet RPC dotazy.

Zajímavé segmenty z inkubatoru

V inkubátoru se nacházejí části ZF, které jsou ve vývoji a s největší pravděpodobností se dostanou do jedné z přístích verzí. Zmínil bych ty nejzajímavější.

Zend_Auth
Tento segment slouží pro autentikaci (ověření totožnosti uživatele), přihlašování a odhlašování uživatele.
ZForm
Jak napovídá název slouží tento segment pro práci s formuláři. Formuláře umí generovat i validovat (na straně serveru i klienta). Obsahuje třídu pro každý běžný formulářový prvek (např. ZFormButton, ZFormInputEle­ment, ZFormImage, ZFormOption, ZFormRadioButton, ZFormCheckbox).
Zend_Soap
Segment obsahuje třídy pro práci se SOAP.

Zdroje o Zend Frameworku

Odebírám e-mailovou konferenci (seznam všech e-mailových konferencí, které ZF nabízí a denně je zde mezi 50 a 100 novými příspěvky. Samozřejmě nabízí i RSS kanály.

Důležité odkazy

Závěrem

ZF rozhodně stojí za vyzkoušení. I fakt, že vývoj frameworku zaštiťuje firma Zend (tvůrce PHP) zaručuje, že se jedná o trvanlivé řešení. Kolem ZF je komunita, která je hodně aktivní. Framework jasně ukazuje, že i v PHP jsou tvořit kvalitní aplikace. Celý framework je napsaný čistým kódem s bohatými komentáři, který dodržuje best practises.

V příštím článku se bude jmenovat Zend Framework – Hello World. Předvedu v něm základní použití části Zend_Controller a routerů Zend_Controller_Rou­ter a Zend_Controller_Rew­riteRouter.

Článek patří do kategorie: PHP, Zend Framework

1 Komentář Přidat komentář

Přidat komentář

Povinné

Povinné, skryté

Security Image Povinné
Opište text z obrázku

Povolené HTML značky:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Odkazovat na tento článek  |  Přihlásit se k odběru těchto komentářů přes RSS Feed


Kalendář

November 2024
M T W T F S S
« Jan    
 123
45678910
11121314151617
18192021222324
252627282930  

Poslední články

Locations of visitors to this page