05 Strukturierung
Selbst mit unserem relativ einfachen Tool wird sehr schnell klar, dass beim Platzieren des kompletten Codes in einem Ordner die Übersicht verloren geht.
Die Strukturierung einer Webapplikation ist ein wichtiger Bestandteil und sollte nicht vernachlässigt werden. Wie du die Applikation strukturierst, ist dir überlassen. Es gibt jedoch klare Komponenten, die jede Webapplikation besitzt und die irgendwo untergebracht werden müssen.
Das MVC-Konzept

(Zum schrittweisen Aufbau der Applikations-Struktur)
Komponenten
Model, View, und Controller (MVC)
Ein Router delegiert eine Anfrage oft an einen Controller. Dieser verwaltet dann den Datenaustausch zwischen einem Model und einer View. Das Model dient als Schnittstelle zu einer Datenquelle (z. B. einer Datenbank). Die View dient zur Darstellung der Daten.
Ein Benutzer interagiert mit einer
View- in dem er auf einen Link klickt oder ein Formular absendet.Ein
Controllerbearbeitet den Benutzer-Input und übersetzt die Daten für das Model.Das
Modelempfängt die Daten, verändert diese (schreibt sie in eine Datenbank, macht eine Kalkulation oder löscht etwas).Der
Controllernimmt die Daten wieder entgegen und gibt diese falls nötig an eineViewweiter.Die
Viewwartet wiederum für die nächste Interaktion mit dem Benutzer.
Diese drei Komponenten werden in der für Webapplikationen sehr beliebten MVC-Architektur verwendet. Dies ist jedoch nur eine von vielen gängigen Architekturen.
Front-Controller
Als Front-Controller bezeichnen wir den «Einstiegspunkt» unserer Webapplikation. Über diesen wird jeder Seitenaufruf entgegengenommen und dann verarbeitet.
Router
Wenn der Front-Controller einen Request entgegennimmt, muss dieser herausfinden, was damit geschehen soll. Dafür wird oft ein Router erstellt. Dieser definiert, wie eine spezieifsche Anfrage/URL verarbeitet werden soll.
Das ÜK-Framework
Für den ÜK steht ein einfaches MVC-Framework zur Verfügung:
Lade das Framework herunter.
Erstelle einen Ordner
aufgabeninC:\xampp\htdocs\modul-307\und extrahiere das Framework da.Ergänze später je Aufgabe die benötigten Routes-Einträge in
index.php, sowie die nötigen Controller, Models und Views.
index.php
Die index.php ist der Einstiegspunkt für alle Anfragen an unser Framework. Hier wird das Framework geladen (core/bootstrap.php), $routes werden definiert und anschliessend ausgeführt.
Routes definieren
Über die $routes Variable in der index.php lassen sich beliebig viele Routes definieren:
Im obenstehenden Beispiel wird beim Aufruf von http://localhost/modul-307/aufgaben/hallo/welt die index Methode auf dem WelcomeController ausgeführt.
Die Controller@Methode Schreibweise ist vom Framework vorgegeben. Der Router kann anhand dieser Schreibweise entscheiden, welche Controller-Methode aufgerufen werden soll.
Controller
Im Ordner app/Controllers werden alle Controller-Klassen abgelegt. In den einzelnen Methoden können Variablen definiert werden. Am Ende einer Controller-Methode wird üblicherweise via require eine View geladen.
Views
Im app/Views Ordner können einzelne View-Dateien abgelegt werden. In diesen sollte nur noch sehr wenig PHP-Code vorhanden sein! Es sollten lediglich einfache if und foreach Statements verwendet werden. Aufwändigere Logik gehört in den Controller oder separate Klassen.
Helpers
In der Datei core/helpers.php gibt es ein paar nützliche Funktionen. Schaue diese an und versuche sie zu verstehen!
Public
Alle CSS, JS und Bild-Dateien gehören in den public Ordner.
Last updated
Was this helpful?