2.2 Een Typisch CakePHP Request
We hebben de basis ingrediënten van CakePHP besproken, dus laten we nu kijken naar hoe elk object samenwerkt om een standaard request* af te handelen. We gaan door met het oorspronkelijk voorbeeld van een request: bedenk dat onze vriend Ricardo zojuist geklikt heeft op de link "Koop Nu Jouw Eigen Taart!" op één van de pagina's van uw CakePHP applicatie.
* request is een technische term en wordt derhalve niet in Nederlands vertaald.

Figuur 2. Een Typisch CakePHP Request.
Zwart= verplicht element, Grijs= optioneel element, Blauw = callback
- Ricardo klikt op de link die verwijst naar http://www.example.com/cakes/buy en zijn browser verzoekt de webserver om de pagina te laden.
- De Router haalt de link uit elkaar en zoekt naar de volgende parameters: de controller, action en eventuele argumenten die meegegeven zijn
- Door middel van routes is de URL omgezet naar controllers en actions. In dit geval wordt de action buy() aangeroepen in de controller CakesController. Als er een beforeFilter() bestaat voor deze controller, wordt deze nu aangeroepen.
- De controller kan gebruikmaken van modellen (Models) om toegang te krijgen tot de data van de applicatie. In dit geval zal de controller aan een model vragen om de data van Ricardo's laatste aankoop op te vragen uit de database. Indien aanwezig, zullen er callbacks, behaviours en dataSources aangeroepen worden tijdens deze aanvraag van data. Hoewel het gebruik van een model niet noodzakelijk is, vereisen alle controllers wel ten minste een model.
- Nadat het model de data heeft opgevraagd, wordt het teruggestuurd naar de controller. Eventuele gedefinieerde callbacks worden eerst uitgevoerd.
- De controller kan eventueel gebruikmaken van componenten (components) om de data aan te passen of andere acties uit te voeren. (Denk hierbij aan datamanipulatie, authenticatie, het verzenden van e-mails en gebruikmaken van sessiedata)
- Zodra de controller de data van het model heeft ontvangen en de componenten hun werk gedaan hebben, worden de data overgestuurd naar de view. Dit gebeurt doormiddel van de set() functie. Controllercallbacks kunnen uitgevoerd worden, mits gedefinieerd.
- De view gaat nu aan de slag met de data, gebruikmakend van elementen (elements) of helpers. Standaard wordt de view weergegeven in een layoutbestand.
- De laatste controllercallbacks (zoals afterFilter) worden nu uitgevoerd en alle data worden naar de browser gestuurd.


























