Actions

Model-view controller

From Joomla! Documentation

This page is a translated version of a page Model-View-Controller and the translation is 100% complete.

Other languages: català 86% • ‎English 100% • ‎español 100% • ‎français 100% • ‎Bahasa Indonesia 100% • ‎日本語 100% • ‎Nederlands 100% • ‎Kiswahili 100%

Joomla maakt uitgebreid gebruik van het [1] ontwerppatroon.

Wanneer Joomla is gestart om een verzoek van een gebruiker te verwerken, zoals een 'GET' voor een bepaalde pagina of een 'POST' met gegevens uit een formulier, is één van de eerste dingen die Joomla doet, het analyseren van de URL om te bepalen welke component verantwoordelijk is voor de verwerking van het verzoek, en de controle aan de desbetreffende component te geven.

Als de component is ontworpen volgens het MVC-patroon, zal het de controle aan de controller doorgeven. De controller is verantwoordelijk voor het analyseren van de aanvraag en het bepalen welke model(len) nodig zijn om te voldoen aan het verzoek, en welke 'view' moet worden gebruikt om het resultaat aan de gebruiker terug te geven.

Het model kapselt de gegevens die worden gebruikt door de component in. In de meeste gevallen komen deze gegevens uit een database, ofwel de Joomla database, of een andere database, maar het is voor het model ook mogelijk om gegevens uit andere bronnen te krijgen, zoals via een web services API die draait op een andere server. Het model is ook verantwoordelijk voor het bijwerken van de database indien nodig. Het doel van het model is de controller en de view te isoleren van de details van hoe de gegevens worden opgehaald of weggeschreven.

De view is verantwoordelijk voor het genereren van de uitvoer die, door de component naar de browser wordt verzonden. Het doet een beroep op het model voor alle informatie die het nodig heeft en formatteert het op de juiste manier. Bijvoorbeeld, een lijst van data-items verkregen uit het model kan in een HTML-tabel worden gezet door de view.

Aangezien Joomla! modulair is opgezet, is de uitvoer van de component in het algemeen slechts een deel van de web-pagina die de gebruiker uiteindelijk zal zien. Als de view eenmaal de uitvoer heeft gegenereerd geeft de component de controle terug aan het Joomla framework, dat vervolgens het template laadt en uitvoert. Het template combineert de uitvoer van de component, en de eventuele modules die actief zijn op de huidige pagina, zodat het aan de browser als een enkele pagina kan worden uitgeleverd.

Om te zorgen voor extra kracht en flexibiliteit voor webontwikkelaars, die zich liever bezighouden met het creëren van nieuwe ontwerpen, dan met het bewerken van de onderliggende code, splitst Joomla de traditionele weergave in een aparte view en lay-out. Het view haalt de gegevens uit het model zoals dat in een traditioneel MVC patroon gaat, maar stelt dan alleen die gegevens beschikbaar aan de lay-out, die verantwoordelijk is voor de opmaak van de gegevens voor de presentatie aan de gebruiker. Het voordeel van deze splitsing is dat het Joomla template systeem een eenvoudig mechanisme biedt om lay-outs te overschrijven in het sjabloon. Deze lay-out overrides (vaak genoemd "template overrides" omdat ze een onderdeel vormen van het template, terwijl het eigenlijk de lay-out is die wordt overschreven) worden gebundeld met het template en geef de template ontwikkelaar volledige controle over de uitvoer van de Joomla core en alle geïnstalleerde extensies van derden die in overeenstemming zijn met het MVC-ontwikkelpatroon.



Zie ook

Component ontwikkelserie

Het ontwikkelen van een MVC Component voor J3.x

Introductie tot het ontwikkelen van een 3.x MVC

Het ontwikkelen van een MVC component voor J2.5

Introductie tot het ontwikkelen van een 2.5 MVC