Pred kratkim sem web programerjem iz podjetja Creatoor, predaval o Zend Frameworku. Prva stvar ki jo najprej izpostavim, ko govorim o Zend Frameworku je ta, da za mene to ni "framework", vsaj ne po tistem kar pravi definicija. To najprej povzroči zmedenost in nerazumevanje kaj sploh Zend Framework je. Za mene je to le "knjižica"1 skript. Med množico modulov, lahko enostavno izberemo in uporabimo le tistega, ki ga rabimo. Čeprav so določeni moduli med sabo odvisni, se da ta lastnost v večini primerih povoziti.2 Zadevi, ki sta mene najbolj pritegnili oziroma "prisilili" da sem upokojil lastne napisane knjižice sta:
- ekipa sodelujočih pri razvoju iz vrst Zend-a, IBM-a, OmniTI, ...
- kvaliteta in testiranje - čez 4.000 unit testov. Vse knjižice so testirane z uporabo PHPUnit.
Velika večina "frameworkov" se vedno znova vrti okrog lastne implementacije MVC-ja. Če želite uiti iz tega začaranega kroga, je boljše, da tak framework me uporabite. Seveda tudi Zend Framework vključuje module, ki vam pomagajo pri postavitvi MVC-ja in načinov kako to dosežemo je kar nekaj. Z malce programerskega znanja boste lahko vključili že obstoječe "third-party" knjižice kot so SwiftMailer, Smarty, Propel, ADOdb, ... ali pa svoje knjižice zamenjali z Zendovimi:
- za delo z sejami - Zend_Session
- za keširanje podatkov, objektov, spletnih strani - Zend_Cache
- ...
Možno, je da si bom s to izjavo nakopal kakšnega "sovražnika", ampak Zend Framewok je profesionalen izdelek in ni ravno namenjen začetnikom, ki se šele spoznavajo s PHP-jem. Čeprav je glavna filozofija in moto frameworka "Extreme simplicity", so določeni pogledi MVC-ja in ostalih modulov precej bolj kompleksni od ostalih frameworkov (CodeIgniter, CakePHP, ...). Če niste ravno naklonjeni, da občasno več ur namenite brskanju po izvorni kodi ali pa vam je uporaba API-ja tuja, vam svetujem da si omislite kaj drugega!
Primer uporabe Zend Framework knjižic
Ostane nam še demo primer uporabe. Test case je vzet iz vsakdanjika. Preko URL-ja preberemo parameter id, če id ni nastavljen ali pa ni tipa int ga nastavimo na nulo. Če slučajno zaznamo metodo POST ustavimo skripto.
Stari način:
if (isset($_GET['id']) and $_GET['id'] != "") { $id = (int) $_GET['id']; } else { $id = 0; } if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') die('POST detected');Zend Framework:
/** Zend/Validate.php */ require_once 'Zend/Validate.php'; /** Zend/Controller/Request/Http.php */ require_once 'Zend/Controller/Request/Http.php'; /** request object */ $request = new Zend_Controller_Request_Http(); /** id */ $id = ( Zend_Validate::is($request->getQuery('id'), 'Int') ) ? (int) $request->getQuery('id') : 0; if ($request->isPost()) die('POST detected');
Kakor vam drago
Happy blogging(coding)!

















Se popolnoma strinjam, da Zend Framework ni za tiste, ki se šele spznavajo s PHP, vendar ne gre toliko za poznavanje samega jezika, ampak predvsem internetnih tehnologij gledano v celoti.
Okolje ima namreč celo vrsto izjemno dobro razdelanih in uporabnih komponent, vendar mora programer vedeti, kaj z njimi početi. Na primer: celo vrsto spletnih storitev, obdelavo e-pošte, obrazcev itd. Sam sem bil zelo navdušen, s kako malo dela sem s pomočjo modula Zend_Http svojo spletno aplikacijo povezal z e-storitvijo Zavoda za zaposlovanje, od koder sem pretočil njihove podatke in jih nato obdelal.
Vse nove spletne aplikacije, ki sem jih delal zadnje leto dni, sem zasnoval na tem MVC ogrodju in moram reči, da je bilo po manjših začetnih težavah nadaljevanje prav prijetno.
Še posebej všeč mi je to, da sem končno našel eno dobro o(g)rodje, s katerim lahko poljubno preoblikujem dinamične url-je v takšne, kot si sam zaželim: lepe, prijazne ter brez ?,=,& in podobnih za tipkanje neprijaznih znakov.
Ko sem jaz prvič ugledal tale Zend framework moram rečt da je romal po 10minutah dol iz mojega razvojnega pcja. Kolkr sem dobro zaštekal zadeva deluje podobno kot pri typo3. Se pravi da se moraš naučit novega jezika zato da lahko programiraš php. Zadeva v profesionalnih vodah nikoli ne bo šla, jo bodo pa redno uporabljali script kiddyi. Lažje != hitrejše & boljše & varnejše
@Janko11: LOL
Ze dolgo se nisem tako nasmejal. Ocitno si zelo povrsno pogledal, kaj ZF je, da pises take neumosti na blogih. ZF != Typo3 in nisem se slisal za noben primer, da bi se moral uciti kaj novega kot php ko uporabljas Zend Framework. ZF uporabljajo profesionalci, med njimi je tudi IBM, v Sloveniji pa ga uporabljajo najvecji -> Domenca, 3line, Kabi, …
Pa se en lapsus si navrgel. Zend Framewok vsekakor ni za script kiddy-je, saj rabis kar nekaj znanja da postavis na noge posteno MVC aplikacijo z raznoraznimi dodatki!
V mislih imam neumnosti kot so zendove knjižnice in njihova dokumentacija. Učenje njihove dokumentacije je bedarija. To je jezik v jeziku. A si že kdaj slišal za funkcijo lan_conn::request($this)? Jaz tudi ne. In se nimam učit namena dokumentacije na tak način. Ne bi te rad razočaral, ampak domenca, 3line in kabi ki jih opevaš so monopolisti, v svetu phpja in zmožnosti njihovih aplikacij pa male ribe. veselo učenje zenda, upam da ne boš pozabil phpja medtem.
Še nekaj bi dodal. Kot je rekel oče phpja, Rasmus Lerdorf: Razni frameworki so lažji vendar se kmalu znajdeš v kritičnih luknjah, ker programer nima pregleda nad dejanskih stanjem za sceno. Sem dovolj dolgo že z phpjem in spletom (letos bo 10let) da vidim argument ki 100% drži. Sicer pa kot si napisal: kakor vam drago.
lp