zend framework quickstart

Pár napja elhatároztam, hogy folytatom a PHP keretrendszerek sorozatot, amit ott hagytam abba, hogy nézzük meg gyakorlati feladatok megoldásait a Zend Framework és Symfony keretrendszereken belül. Ehhez gondoltam jó ujjgyakorlat lesz a quickstart elvégzése. Sajnos most is rá kellett döbbennem, hogy hiába az óriási hype a ZF mögött, a dokumentáció ezen a ponton nagyon hiányos, a kezdőknek nyújtott segítség pedig minimális.

Na most már maga a feladat is elég primitív, nehéz legalábbis ennél egyszerűbb feladatot elképzelni amihez űrlap is kell és adatbázis is, de végülis ez még önmagában nem probléma. Szerintem az viszont már tényleg túlzás, hogy még a dekorátorok használatát sem mutatják meg, megelégszenek egy alap űrlap kinézettel a tutorial alkotói. Sőt, azt gondolom, hogy egy ilyen komoly háttérrel és felhasználói bázissal rendelkező rendszertől az is elvárható lenne, hogy az elkészült "műhöz" tesztek írásában is segítséget adjon. Talán túlzás, de a magam részéről azt se bánnám, ha rögtön a tesztvezérelt fejlesztést is a zászlójukra tűznék, szerintem nem állna semmiből.

Aztán hajamat majdnem kitéptem, mire rájöttem, hogy a parancssoros controller létrehozás miért nem működik. A lényeg, hogy elkezdett a Zend Framework könyvtáramból include-olni, aztán amikor megtalálta a projektet, akkor folytatta a projekt saját könyvtárából. Na most innentől kezdve az egy szép dolog, hogy mindenhol require_once meg include_once volt, de simán megnyitotta kétszer ugyanazt a fájlt, hiába létezett már a kérdéses osztály. Nem tudom pontosan megmondani, hány órát vett el ez a hiba az életemből, de nem egyet az biztos, ugyanis a legtöbb általam bevetett trükköt simán felülírta a keretrendszer, ráadásul sok minden nem is működhetett, hiszen egyszerűen rossz helyen kerestem a hibát. Az is megdöbbentő volt, hogy hány száz osztályt deklarált magának a hiba helyéig, nagyjából 150-et. El is gondolkoztam, hogy vajon mi értelme van 150+ osztályt deklarálni ahhoz, hogy létrehozzon egy controller és egy view fájlt, ráadásul mindkettőt üresen.

Na mindegy, miután rájöttem a hibára, kiiktattam az include_path-ből a zend könyvtáramat és bemásoltam a zf.php-t és zf.bat-ot a projektkönyvtáramba. Ott megadtam nekik, hogy hol vannak a zend osztályai és ment minden mint a karikacsapás. Utána a tutorialon már hamar végig szaladtam és bár a fent említett hiányérzetem igen erős volt, gondoltam "befejezem" a projektet.

Itt még jött egy nagyszerű ötletem, letöltöttem a projektet .zip fájlként és láss csodát, abban szerepeltek tesztfájlok is. Igaz nem mind, de legalább a controllerek teszt fájljai ott voltak, még ha elavult és hiányos formában is. Az elavultság nem volt vészes, csupán az application könyvtárt neveztük el a Quickstart utasításai alapján Default modulnak és pár osztálynév elé kellett ezért a Default_ sztringet beszúrni. A hiányosság viszont nagyobb problémát okozott, ugyanis az elkészült vendégkönyv az email cím és üzenet mezőkön kívül egy csrf védelmet és egy captchát is tartalmazott. Na most itt ugye pont az a lényeg, hogy ne lehessen automatizált módon kitölteni, így valahogy meg kell tudni, hogy mit vár a rendszer válaszként, csakhogy az űrlap objektumot tartalmazó view objektumhoz, pontosabban a tényleges végrehajtást végző controllerhez nem olyan könnyű hozzáférni, legalábbis nekem nem jött össze. Szerencsére a megoldás sokkal egyszerűbb, ennek a bejegyzésnek hála, gyorsan megvolt. Érdekesség, hogy miután leesett nekem is, hogy a session adatokból hamarabb megvan az eredmény, azért rájöttem arra is, hogy ez a megoldás a csrf érték kinyerésére is egyszerűbb, mint a "hivatalos", válaszból kiolvasós verzió, mondjuk ez lehet, hogy szőrszál hasogatás.

Ezen kívül még csak annyi dolgom volt, hogy kiiktassam az adatbázis újbóli létrehozását a setUp-ban, ugyanis az sqlite adatbázis fájlt a rendszer fogta, így nem lehetett törölni. Bár nyilván rá lehet jönni, hogy hogyan engedtessük el, de nekem erre most nem volt energiám, talán majd a jövőhéten. Illetve ha valaki tudja a megoldást, akkor várom sok szeretettel! ;)

Ezért megdolgoztam keményen. Bár a Zend vs Symfony sorozat gyakorlati része csak most kezdődik, előny a franciák büszkeségénél.

Címkék: zend framework keretrendszerek

A bejegyzés trackback címe:

http://szajtbilder.blog.hu/api/trackback/id/tr101698845

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

Nincsenek hozzászólások.