2.2 Egy átlagos CakePHP lekérés

Áttekintettük a CakePHP alapelemeit, itt az ideje, hogy megnézzük, hogy hogyan működnek együtt ezek az objektumok, hogy kiszolgáljanak egy lekérést. Folytatva az eredeti lekérés példánkat, képzeljük el, hogy kis barátunk Robi rákattint a “Vegyél egy egyéni sütit!” linkre egy CakePHP alkalmazás főoldalán.

Folyamatábra egy tipikus CakePHP lekérésről

2. ábra egy tipikus CakePHP lekérés

Fekete = elvárt elem, Szürke = opcionális elem, Kék = callback

  1. Robi rákattint a http://www.example.com/cakes/vasarlas linkre és a böngészője elküld egy lekérést a webszerver felé.
  2. Az útválasztó Router feldolgozza az URL-t, hogy megkapja belőle a lekérés paramétereit, a vezérlőt, a feladatot, és a többi paramétert ami befolyásolja a működést a lekérés alatt.
  3. Az utat használva, a lekért URL átalakításra kerül egy vezérlő egyik feladatára (ami egy függvény lesz a vezérlő osztályban). Ebben az esetben ez a vasarlas() függvény a CakesController osztályban. A vezérlő beforeFilter() callback-je meghívásra kerül, bármi más vezérlőbeli eljárás lefuttatása előtt.
  4. A vezérlő használhat modelleket ahhoz, hogy hozzáférjen az alkalmazás adataihoz. Példánkban a vezérlő használ egy modellt, hogy elérje Robi utolsó vásárlásainak adatait. Eközben minden modell callback, viselkedés és adatforrás meghívásra kerül. Habár a modell használata nem kötelező, minden CakePHP vezérlő megkívánja, hogy legalább egy modell definiálva legyen.
  5. Miután a modell megkapta az adatokat, visszaadja azokat a vezérlőnek. A modell callback-ek meghívásra kerülnek.
  6. A vezérlő használhat komponenseket, hogy tovább finomítsa az adatokat, vagy más ügyeket bonyolítson le (session módosítás, authentikáció, vagy például levél küldés).
  7. Amint a vezérlő befejezte a modellek és komponensek használatát, hogy az adatokat megfelelően előkészítse, átadja az adatot a nézetnek a vezérlő set() metódusa segítségével. Mielőtt az adatokat átadná, meghívja a vezérlő callback-jeit. A nézetbeli eljárások végrehajtódnak és segítők és/vagy elemek is lefuthatnak. Alapértelmezés szerint a nézet a layout-on belül kerül előállításra.
  8. További vezérlő callback-ek (mint az afterFilter) hívódhatnak meg. A teljes előállított nézet kódja kiküldésre kerül Robi böngészője felé.