Controllers, Models en Views

Dit is het vijfde deel van een serie over de bouw van een nieuwe website op basis van Zend Framework. Kijk in de zijbalk voor de linkjes naar de eerste delen.

Zoals we al eerder hebben gezegd, vormen controllers de tussenlaag tussen het model (waar de logica van de applicatie wordt uitgevoerd) en de views (waar zich de presentatie naar de buitenwereld afspeelt). Er heerst de laatste jaren een consensus in kringen van software architecten dat het het best is om te streven naar skinny controllers and fat models: houd de controllers klein en overzichtelijk, en verplaats zoveel mogelijk code naar de models.

Een nieuwe pagina maken

We wijken even af van onze elesio-applicatie om met een simpel voorbeeld aan te tonen hoe we een nieuwe pagina maken in onze website. Open application/views/scripts/index/index.phtml en plaats onder je bestaande code een linkje:

[codesyntax lang=”html4strict” title=”application/views/scripts/index/index.phtml”]

<p><a href='/index/calculate'>Voer een berekening uit</a></p>

[/codesyntax]

Klik je daar nu op, dan zul je een foutmelding te zien krijgen. Dat gaan we snel verhelpen. Open een command-prompt, navigeer naar je projectmap, en geef dit commando op:

[codesyntax lang=”bash” title=”Command Line”]

php bin/zf.php create action calculate

[/codesyntax]

Als het goed is, zul je de boodschap terugkrijgen dat er code is toegevoegd aan je indexcontroller, en dat er een view script is aangemaakt. Open nu /application/controllers/IndexController.php: daar zie je dat de methode CalculateAction is toegevoegd aan de klasse. En in de map /application/views/scripts/index is een nieuw bestand aangemaakt: calculate.phtml.

Continue reading →

Zend Framework nader bekeken

Dit is het vierde deel van een serie over de bouw van een nieuwe website op basis van Zend Framework. Kijk in de zijbalk voor de linkjes naar de eerste delen.

Nu we de applicatie hebben opgezet, is het handig om eens van dichtbij al die mappen en bestanden te bekijken die Zend_Tool voor ons heeft klaargemaakt.

Application

Dit is de centrale map waarin je veruit het grootste deel van je ontwikkelwerk zult doen. Application zelf is weer onderverdeeld in

1. Configs – hierin worden de configuratiebestanden van je applicatie opgezet.

2. Controllers – de verzamelplaats waar de requests worden opgevangen die door de browser van de bezoeker naar je applicatie worden verstuurd, en waar de views worden aangestuurd die de bezoeker als gevolg van zijn request uiteindelijk te zien krijgt

3. Models – hierin wordt de logica van je applicatie ondergebracht

4. Views – de scripts waarin de html terecht komt die je uiteindelijk moet produceren om de pagina’s te tonen

Een van de belangrijkste besluiten die je neemt als je een applicatie bouwt met ZF, is de beslissing om een strikte scheiding aan te brengen tussen de logica die je applicatie nodig heeft om goed te functioneren, de pagina’s die getoond moeten worden wil de bezoeker kaas kunnen maken van deze logica, en de verbinding tussen logica en pagina’s.

Deze scheiding is nuttig: als je die altijd hanteert, betekent dat dat je je eigen code aan een strikte discipline onderwerpt. Je weet dat je nooit in je html hoeft te zaken naar databasefunctionaliteit of login-code, want die heeft keurig zijn eigen plek in de applicatiestructuur. Dit ontwerppatroon (design pattern) heeft MVC: Model-View-Controller. En laat die benaming nou net overeenkomen met de submappen onder application!

Continue reading →