Wat is een MVC model

MVC - Model View Controller

Symfony werkt volgens de basis van het MVC-model, Model-View-Controller. Daarbij wordt er een scheiding gemaakt tussen Models, Views en Controllers. Hierbij wordt de code opgedeeld waarbij bepaalde code in een bepaald bestand staat. Een Model-, View- of Controller-bestand. Bekijk onderstaand schema eens goed.

Model

Een Model, in Symfony Entity genaamd, is de basis van de data in jouw applicatie. Een Model, of Entity, is gelinkt aan een tabel in jouw database. De Model haalt de gegevens op uit de database en met een aantal simmpele functies kan je de data tonen, aanpassen en weer opslaan.
Models of Entities in Symfony vind je in de map /src/Entity.

Een Model is een PHP Class

Models (Entities) in Symfony zijn PHP Classes. Dat betekend dat zij altijd met een hoofdletter beginnen!

View

De View is het deel in het MVC-model waar de HTML/CSS en JavaScript (de frontend) gebouwd wordt.
Views in Symfony vind je in de map /templates.

Twig?

Om de data makkelijk te houden wordt er in Symfony gewerkt met de TWIG opmaak standaard. In een Symfony view werk je nooit direct met PHP maar altijd met het coderen van de TWIG code. Je maakt vooral gebruik van FOR-loops en IF-statements in TWIG.

Een View is GEEN PHP Class

In tegenstelling tot een Controller en een Model (Entity) is een View geen PHP-Class maar een gewoon bestand. Zij beginnen dus altijd met kleine letters en eindigen met de extensie .html.twig.

Controller

Controller het woord zegt het al, verwerkt alle data. Vanuit een URL wordt er een functie aangeroepen in een bepaalde controller. Vanuit die controller wordt er vervolgens data gecontrolleerd (mag de gebruiker hier wel zijn, is het formulier goed ingevuld etc.), worden er gegevens uit de database opgehaald of opgeslagen en gebeuren er nog meer acties zoals het versturen van mails, doorsturen van de gebruiker naar een andere pagina (redirects) en kan je ook flash-messages maken.
Controller in Symfony vind je in de map /src/Controller.

Een Controller is een PHP Class

Controllers in Symfony zijn PHP Classes. Dat betekend dat zij altijd met een hoofdletter beginnen!