2.2 Typický CakePHP požadavek

Zatím jsme si popsali základní ingredience CakePHP, tak se nyní pojďme podívat na to, jak objekty spolupracují na obsloužení jednoduchého požadavku. Budeme pokračovat v již uvedeném příkladu. Představme si že náš přítel Richardo právě klikl na odkaz "Kupte si dort na míru!" v naší CakePHP stránce.

Vývojový diagram představující typický CakePHP požadavek

Obrázek: 2. Typický CakePHP požadavek.

Černá = povinný prvek, Šedá = volitelný prvek, Modrá = zpětné volání

  1. Ricardo klikne na odkaz vedoucí na http://www.example.com/cake/buy, a jeho webový prohlížeč odečle požadavek našemu web serveru.
  2. Část zvaná Router vytáhne z URL následující informace: kontroler, akce (action), a jakékoliv jiné argumenty které ovlivní logiku našeho požadavku.
  3. Pomocí směrovačů (routes) je URL převedeno na akci kontroleru (což je metoda v třídě daného kontroleru). V tomto případě je to metoda buy() kontroleru CakesController. Zpětné volání (callback) beforeFilter() tohoto kontroleru je provedeno před jakýmkoli kódem akce.
  4. Kontroler může používat modely pro přístup do aplikačních dat. V tomto případě kontroler používá model pro získání Ricardových posledních nákupů z databáze. Jakékoliv vhodné zpětné volání modelů, modelů chování a zdrojů dat (DataSources) může být aplikováno během této operace. Zatímco použití modelu není vyžadováno, všechny CakePHP kontrolery zpočátku potřebují alespoň jeden model.
  5. Poté co model získá příslušná data, navrátí je kontroleru. Opět mohou nastat zpětná volání modelu.
  6. Kontroler může použít komponenty pro další pročištění dat, nebo pro provedení jiných operací (manipulace se session, autentifikace, posílání emailů, ...).
  7. Jakmile kontroler použije modely a komponenty pro přípravu potřebných dat, jsou tato předána pohledu pomocí metody set() kontroleru. Opět mohou nastat zpětná volání kontroleru před odesláním dat. Provede se zpracování logiky pohledu, které může obsahovat použití elementů a/nebo helperů. Standardně je pohled vykreslen do layoutu.
  8. Další zpětná volání kontroleru (jako například afterFiler) může být provedeno. Kompletní, vykreslený kód pohledu je poslán Ricardovu prohlížeči.