MVC – Einführung durch ein eigenes kleines „Framework“

Controller (C)

Die Aufgabe des Controllers ist die Ablaufsteuerung und die Ausführung der eigentlichen Programmlogiken. Er lädt notwendige Daten mit Hilfe des Models und stellt sie der View zur Verfügung. Auch Dinge wie Zugangskontrolle, Sessionverwaltung und Fehlerbehandlung finden hier statt.

Zunächst müssen wir anhand der vom Benutzer eingegebene URL den richtigen Controller und darin die richtige Methode (sogenannte Aktion) auswählen.

Wir gestalten unsere Links nach dem Schema
http://www.example.com/controller/action.
Dabei ergänzen wir fehlende Teile durch „index“. Die URL der Startseite (www.example.com) interpretieren wir also als www.example.com/index/index. Damit ergibt sich als Controllerklasse IndexController und als auszuführende Aktion die Methode indexAction.

Natürlich dürfen wir unsere Klassen und Methoden nennen wie wir wollen, die Konvention ist allerdings beim Klassennamen ein „Controller“ und bei der Methode ein „Action“ anzuhängen.

Dieses sogenannte Routing erledigen wir in diesem einfachen Beispiel in der index.php. Wir würzen noch etwas Errorhandling dazu und erhalten folgenden Programmcode.

Der IndexController unseres Beispiels sieht derweil noch unspektakulär aus.

Wir packen gleich noch ein Interface dazu, das wir für instanceof Prüfungen verwenden. In den meisten Anwendungen wird man noch eine abstrakte Basisklasse BaseController einführen, von der alle Controller erben. Damit können dann allgemeine Aufgaben wie Sessionverwaltung erledigt werden.
Der vollständige Code bis hierher (v0.1).

Damit wir eine saubere Trennung von Business-Logik und Design erhalten, machen wir ab jetzt keine Ausgaben mehr im Controller. Diese Aufgabe übernimmt die ViewWeiter mit der View