Model-View-Controller uitleg
Overzicht
Correct geschreven CakePHP applicaties volgen het MVC (Model-View-Controller) software ontwerp patroon. Programmeren met MVC scheidt uw applicatie in drie delen. Het model representeert de applicatie data, de view maakt een presentatie van de model gegevens, en de controller handelt de requests van gebruikers af.
IMAGE
Figuur 1: Een standaard MVC Request
Figuur 1 geeft een voorbeeld van een simpel MVC request in CakePHP. Ter illustratie, doen we alsof een gebruiker genaamd Ricardo heeft geklikt op de “Buy A Custom Cake Now!” link op de startpagina van uw applicatie.
- Ricardo klikt op de link die verwijst naar http://www.example.com/cakes/buy, en zijn browser maakt een request naar uw web server.
- De dispatcher controleert de request URL (/cakes/buy), een geeft de request door aan de juiste controller.
- De controller voert de applicatie specifieke logica uit. Bijvoorbeeld, controleert deze of Ricardo is ingelogd.
- Daarnaast gebruikt de controller een of meerdere modellen om toegang tot de applicatie data te krijgen. Meestal representeert een model een database tabel, maar dit zou net zo goed LDAP , RSS , of bestanden op het systeem kunnen zijn. In dit voorbeeld gebruikt de controller een model om Ricardo zijn laatste aankopen uit de database op te halen.
- Zodra de controller zijn trucje heeft gedaan met de data, wordt deze doorgegeven naar een view. De view pakt deze data op en maakt deze klaar voor presentatie aan de gebruiker. Views in CakePHP zijn meestal in HTML format, maar dit zou evengoed een PDF, XML document of een JSON object kunnen zijn, afhankelijk van uw wensen.
- Als de view de data van de controller heeft gebruikt om een volledige view op te bouwen, wordt de inhoud van die view teruggestuurd naar Ricardo’s browser.
Bijna elke request naar uw applicatie volgt dit basispatroon. We zullen later nog wat meer Cake-specifieke details geven, dus houdt dit in gedachten terwijl we verdergaan
Voordelen
Waarom gebruik maken van MVC? Omdat het een bewezen software design patroon blijkt te zijn dat van een applicatie, een goed onderhoudbaar, modulair en snel te ontwikkellen pakket maakt. De taken van uw toepassing onderverdelen in aparte modellen, views en controllers maakt uw applicatie zeer lichtvoetig. Nieuwe functies zijn eenvoudig toe te voegen, en bestaande functies een nieuw uiterlijk geven is een fluitje van een cent. Door het modulaire en gescheiden ontwerp kunnen ontwikkelaars en ontwerpers tegelijkertijd werken, waaronder de mogelijkheid om snel een prototype te maken. Deze scheiding stelt ontwikkelaars ook in staat om veranderingen in een deel van de toepassing te maken zonder invloed op de andere delen.
Als u nog nooit een applicatie op deze manier hebt gebouwd is het wel even wennen, maar we zijn ervan overtuigd dat als u eenmaal uw eerste CakePHP toepassing hebt gebouwd, u niet meer anders zult willen.

login to add a comment