MVC
Model View Controller ist eine Architektur, welche für viele Programmiersprachen ähnlich ist. Der Grundsatz ist, dass der Request (Anfrage) zuerst durch den Controller muss, danach die Daten im Model verarbeitet werden und am Schluss wird ein Template (View) gerendert.
Anfrage von Client zu Controller
Controller ruft Model auf
(3. Model sendet Anfrage an Datenbank
Datanbank antwortet an Model)
Model liefert die Validierten Daten an den Controller zurück
Controller ruft View auf
View sendet das fertige Template an den Controller zurück
Der Controller sendet das gerenderte Template an den Client
Konkrete Reihenfolge:
Browser -> URL Routing -> Controller -> Model -> Controller -> View -> Controller -> URL Routing -> Browser
Controller
Der Controller ist für den Datenfluss verantwortlich. Er entscheidet, wann wo welche Methode aufgerufen werden soll. Im Controller findet keine Validierung oder Datenbankabfrage statt. Jedoch das holen der Daten aus den globalen Variabeln ist die Aufgabe des Controllers. Auch erfolgt im Controller der einmalige aufruf des Model-Layers.
Die Daten, die der Model-Layer zurückliefert, übergibt der Controller dem Template.
Model
Der Model-Layer ist in verschiedene Schichten unterteilt. Im Service-Layer ist die Validierung der gelieferten Daten. Im Model selber werden Datenbankabfragen ausgeführt.
View
Ein View Template ist ein HTML File, in welches die Daten eingefügt werden (rendern). Für diese Daten gibt es im HTML File Platzhalter (bsp: echo $data['name']). Im View wird keine Berechnung oder Datenbankabfrage gemacht. Jedoch eine for/foreach Schleife kann man machen, wenn man beispielsweise viele Daten in einer Tabelle darstellen muss.
Was man darf und was nicht
Die grünen Felder symbolisieren, was wo passiert. Die gelben sollte man meiden und die Roten sind bad practice.
Erklärung CRUD
Request/Response Zeit
In der Darstellung unterhalb sieht man, innerhalb welcher Zeit welcher Aufruf passiert.