Zend_Controller gyorstalpaló Bevezetés A Zend_Controller a Zend Framework MNV rendszerének lelke. Az MNV, azaz Modell-Nézet-Vezérlő (Model-View-Controller, MVC), egy tervezési minta, melynek célja az alkalmazási logika elválasztása a megjelenítési logikától. A Zend_Controller_Front egy Elülső Vezérlő (Front Controller) mintát valósít meg, melyben az elülső vezérlő minden kérést elfog, és a kért URL alapján kézbesít az önálló Műveletvezérlőknek (Action Controllers). A Zend_Controller rendszer építésekor mindvégig szem elött tartottuk a kiterjeszthetőséget, történjék az a meglévő osztályok származtatásával, olyan új osztályok írásával, melyek megvalósítják az osztályok vezérlő családjának alapját képező különféle felületeket és elvont osztályokat, vagy bővítmények, illetve művelet segédek írásával, növelendő vagy befolyásolandó a rendszer funkcionalitását. Gyorstalpaló Ha bővebb információra van szükséged, lásd a következő fejezeteket. Ha csak gyorsan meg akarsz lenni és indulni, olvass tovább. Az állományaid elrendezése Az első lépés, hogy elrendezd az állományaid. A jellemző elrendezés a következő: A gyökérkönyvtárad beállítása A webkiszolgálódban állítsd a gyökérkönyvtárad a fenti elrendezés html/ könyvtárára. Készítsd el az átírási szabályaid Szerkeszd a fenti html/.htaccess állományt, hogy a következőképpen fessen: A fenti szabályok minden nem-erőforrás (képek, stíluslapok) kérést az elülső vezérlőhöz fog irányítani. Ha vannak más kiterjesztések, amiket el akarsz zárni az elülső vezérlőtől (PDF-ek, szöveges állományok stb.), add a kiterjesztésüket a választóhoz, vagy készítsd el a saját átírási szabályaidat. A fenti átírási szabályok Apache-ra vonatkoznak; más webkiszolgálókra vonatkozó átírási szabályokra az útválasztó leírásában találsz példát. Készítsd el a rendszertöltő állományod A rendszertöltő állomány az az oldal, amin az összes kérés át van vezetve – a html/index.php, ebben az esetben. Nyisd meg a html/index.php -t az általad választott szerkesztőben, és add hozzá a következőt: Ez példányosítani fogja az elülső vezérlőt, ami majd elirányítja a kéréseket a műveletvezérlőkhöz. Készítsd el az alapértelmezett műveletvezérlőd Mielőtt a műveletvezérlőket tárgyalnánk, először meg kell értened, hogyan vannak a kérések irányítva a Zend Frameworkben. Alapból egy URL elérési út első része egy vezérlőre, a második pedig egy műveletre van leképezve. Például a http://framework.zend.com/roadmap/components URL esetén az elérési út a /roadmap/components, ami a roadmap vezérlőre és a components műveletre lesz leképezve. Ha nincs művelet megadva, az index művelet lesz feltételezve, ha nincs vezérlő megadva, akkor pedig az index vezérlő (követve az Apache egyezményt, ami egy DirectoryIndexre mutat automatikusan). Ezután a Zend_Controller kézbesítője veszi a vezérlő nevet és egy leképezi egy osztályra. Alapból nagykezdőbetűzi a vezérlő nevét és hozzáfűzi a Controller szót. Ilymódon, a fenti példánkban a roadmap vezérlő a RoadmapController osztályra lesz leképezve. Hasonlóan, a művelet név a vezérlő osztály egy tagfüggvényére lesz leképezve. Alapból a név kisbetűs, és az Action szó van hozzáfűzve. Tehát, a fenti példánkban a components műveletből componentsAction lesz, és végül a tagfüggvény neve RoadmapController::componentsAction(). Továbblépve tehát, csináljunk egy alapértelmezett műveletvezérlőt és művelet tagfüggvényt. Ahogy azt korábban megjegyeztük, az alapértelmezett vezérlő és művelet neve is index. Nyisd meg az application/controllers/IndexController.php állományt, és írd a következőt: Alapból a ViewRenderer műveletsegéd engedélyezve van. Ez azt jelenti, hogy egyszerűen megadva egy művelet tagfüggvényt és egy vonatkozó nézet szkriptet, a tartalmad azonnal megjelenik. Alapból a Zend_View lesz az MNV Nézet rétegeként használva. A ViewRenderer varázsol kicsit, és a vezérlő (pl. index) és az aktuális művelet (pl. index) nevét használja, hogy megállípítsa melyik sablont szolgálja ki. Alapbeállítás szerint a sablonok a .phtml kiterjesztésre végződnek, tehát ezek szerint a fenti példában az index/index.phtml sablon lesz megjelenítve. Ezenfelül a ViewRenderer magától feltételezi, hogy a vezérlő könyvtárral egy szinten lévő views könyvtár lesz az alap nézet könyvtár, és hogy a nézet szkriptek a views/scripts alkönyvtárban helyezkednek el. Ebből következően a megjelenített sablon az application/views/scripts/index/index.phtml. Készítsd el a nézet szkripted Ahogy azt az előző részben említettük, a nézet szkripteket az application/views/scripts/-ben találjuk; a nézet szkript az alapbeállítású vezérlőhöz és művelethez az application/views/scripts/index/index.phtml. Hozd létre ezt az állományt és írj bele némi HTML-t: Első Zend Framework alkalmazásom

Helló, világ!

]]>
Készítsd el a hibakezelő vezérlőd Alapbeállítás szerint a hibakezelő bővítmény be van jegyezve. Ez az bővítmény azt várja, hogy létezik egy vezérlő, ami kezeli a hibákat. Feltételez egy ErrorControllert az alapértelmezett modulban, egy errorAction() tagfüggvénnyel: Feltételezve a már tárgyalt könyvtárelrendezést, ez az állomány az application/controllers/ErrorController.php helyre kerül. Szükséged lesz egy nézet szkriptre is az application/views/scripts/error/error.phtml-ben; a tartalomra egy lehetséges példa: Hiba

Hiba merült fel/h1>

Hiba merült fel; kérjük próbáld újra később.

]]> Nézd meg az oldalt! Első vezérlőddel és nézeteddel felszerelkezve most beizzíthatod a böngésződ és az oldalra navigálhatsz. Feltételezve, hogy a tartományneved valami.hu, a következő URL-ek bármelyike behozza a most elkészült oldalt: http://valami.hu/ http://valami.hu/index http://valami.hu/index/index Mostmár nekiláthatsz új vezérlők és műveletek készítésének. Gratulálunk!