Zend Framework – Céges Demo portál – Zend Framework működésre fogása I. rész

Ebben a fejezetben, végre működésre bírjuk a Zend Frameworkös demo alkalmazásunkat. Ehhez el kell készítenünk egy .htaccess fájlt. Hozzáadok a projekthez egy javascriptes menüt amivel izlésesebben lehet majd megjeleníteni a menü linkjeit. Elkészítjük a vezérlőket(Controller) és a hozzá tartozó nézeteket(views). A projektünkhöz adjuk a css fájlunkat amely a kinézetért felelős. Kulcsszavakat adunk a tartalomhoz illetve beállítjuk az oldal karakterkódolását is. Az előző fejezetekben elkészítettük az MVC kódolást segítő projekt felépítést is már:

Zend Framework Céges Demo Portál - MVC
Zend Framework Céges Demo Portál - MVC

Most az index.php fájl mellé adjuk hozzá a .htaccess fájlunkat a következő tartalommal:

.htaccess tartalma:

RewriteEngine on
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php

Ez annyit csinál, hogy a zárójelben felsorolt végződésű fájlokat, mivel ezeket a public_html könyvtárban tároljuk, hagyja kiszolgálni, a többi kérdést az index.php-hoz irányítja. Megjegyezném, hogy a kérések index/index formában jelennek meg majd.

A következő lépéshez el kell magyaráznom a Zend Frameworkel készülő portálok működési elvét.

Alapesetben, amikor böngészőnkben meghívjuk az index.php fájlt(http://localhost/demo/public_html/index.php) akkor ezt a Zend Framework úgy értelmezi alapesetben mintha egy http://localhost/demo/public_html/index/index kérés érkezne be. Mit is jelent ez valójában?

MVC kódolásban dolgozunk, azaz vezérlőket és nézeteket használunk. A vezérlők szolgálnak az események lekezeléséért amelyeket portálunk látogatói válthatnak ki. A http://localhost/demo/public_html/index/index kérés tulajdonképpen egy http://localhost/demo/public_html/vezérlő/esemény együttest jelent.

A http://localhost/demo/public_html/index/index kéréssel meghívjuk az index vezérlőnek az index eseményét. Zendben ez vezérlő mint IndexController, esemény mint indexAction. Figyeljünk a megfelelő kis és nagybetűs elnevezésre mivel erre a Zend Framework(ZF) érzékeny. A Controllereket mindig nagybetűvel nevezzük el, az eseményeket pedig kisbetűvel, ahol az Action-ban az A az mindig legyen nagy betű!

A Controllerhez mindig tartoznia kell egy könyvtárnak, melyben a megfelelő események nézetei vannak. Szóval vegyünk egy példát /demo/application/controllers/ könyvtárban hozzunk létre egy IndexController.php controllert. Hozzunk létre benne egy public function indexAction(){} eseményt. Valamint a /demo/application/views/scripts/ könyvtárban egy a controller nevével megegyező könyvtárat ami kisbetűs. IndexController esetén egy index könyvtárat, ebben a könyvtárban /demo/application/views/scripts/index/ hozzunk létre egy index.phtml fájlt, fontos PHTML. PHTML PHP és értelemszerűen HTML keveréke. Fontos, hogy .phtml kiterjesztéssel mentsük el a nézeteket az eseményekhez ugyanis a ZF erre is allergiás. Ha nem találja az adott nézetet .phtml kiterjesztéssel akkor hibát dob, akkor is ha .php kiterjesztéssel mi ugyan létrehoztuk!

Amikor http://localhost/demo/public_html/index/index ez a kérés jön a böngészőnk URL-jéből, akkor tulajdonképpen meg hívjuk az IndexControllerünk IndexAction-ját erre a ZF automatikusan megkeresi az IndexAction-höz tartozó nézetet a következő helyen: /demo/application/views/scripts/index/index.phtml kiterjesztéssel.

Ha az IndexControllerünknek van egy public function cegunkAction() eseménye, amit meg is hívunk akkor a ZF a /demo/application/views/scripts/index/ helyen a cegunk.phtml fájlt fogja keresni.

Összegzésül. Amikor egy http://localhost/demo/public_html/index/index kérés érkezik be akkor, ez azt jelenti, hogy a vezérlőnk egy eseményét hívták meg, akkor a ZF automatikusan kikeresi a hozzá tartozó views/scripts/index/ index.phtml kiterjesztésű nézetet és megjeleníti számunkra.

Reklámok

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s