Das Galileo-Press-Blog benötigt zunächst eine gut strukturierte Basisarchitektur. Mit Hilfe der eZ Components wird dazu das Model-View-Controller-Pattern implementiert.
3 Die Applikationsbasis
Das Model-View-Controller-Entwurfsmuster (MVC-Pattern) ist eines der bekanntesten Entwurfsmuster des objektorientierten Softwaredesigns. Ursprünglich im Bereich der Programmierung von Graphical-User-Interfaces (GUI) entstanden, findet es auch im Webbereich immer weitere Verbreitung. Dieses Kapitel wird Ihnen das MVC-Entwurfsmuster näherbringen und zeigen, wie Sie es mit Hilfe der eZ Components erfolgreich als Basis einer Webapplikation verwenden können.
Beachten Sie bitte, dass die gezeigte Implementation nicht primär darauf abzielt, ohne Änderungen in den produktiven Betrieb übernommen zu werden. Das Hauptaugenmerk liegt beim GP-Blog immer auf dem Beispielcharakter der Anwendung, weshalb an einigen Stellen Konzepte verwendet werden, die so in realen Anwendungen wenig Sinn machen. In diesem Fall passiert es meist aus Platz- und Übersichtsgründen und wir weisen an den entsprechenden Stellen explizit darauf hin und geben Vorschläge, wie eine bessere Realisierung aussehen sollte.
3.1 Das MVC Pattern 

Wie der Name Model-View-Controller bereits andeutet, sieht das Entwurfsmuster eine Aufteilung der Applikation in drei wesentliche Teile vor:
- Die Modelle der Applikation sind die verwendeten Daten-Objekte, welche oft nicht nur für die Datenhaltung, sondern auch für häufig benötigte Funktionalitäten zuständig sind. In aktuellen Umsetzungen des MVC-Patterns wird zwischen den vereinfachten Objekten, die zur Darstellung verwendet werden, und den eigentlichen Objekten zur Datenhaltung unterschieden. Auf diese häufig sinnvolle Trennung gehen wir hier nicht weiter ein.
- Der Controller-Teil bildet die Zentrale der Applikation und verwaltet die Schichten.
- Die View-Komponenten sind für die Darstellung gegenüber dem Benutzer zuständig.
Sinn und Zweck des Entwurfsmusters ist also die Trennung zwischen Datenhaltung, Business-Logik und Darstellung. Besonders in einer Webapplikation macht es Sinn, die Darstellungsschicht von der Business-Logik zu trennen, um flexibel das optische Design der Applikation auszutauschen, ohne die Logik berühren zu müssen. Ebenfalls ist es sinnvoll, die Datenhaltung von der Logik abzukapseln, um die zugrunde liegenden Mechanismen der Datenhaltung flexibel austauschen zu können. Zum Beispiel wäre es möglich, das verwendete Datenbanksystem zu wechseln. Letztendlich werden durch die klare Strukturierung auch die einzelnen Applikationsteile besser und vor allem getrennt voneinander wartbar.
Der typische Ablauf innerhalb eines MVC für eine Webapplikation gestaltet sich wie folgt:
| 1. | Ein einzelner Haupt-Controller nimmt den HTTP-Request entgegen und entscheidet anhand verschiedener Kriterien, was mit den übermittelten Daten zu geschehen hat. Typisch ist hier die Abwicklung über eine einzige Basis-URL. |
| 2. | Sind die Request-Daten valide, vermittelt der Haupt-ControllerHaupt-Controller die weitere Verarbeitung an ein spezielles Controller-Objekt, den sogenannten Action-Controller. |
| 3. | Der Action-ControllerAction-Controller führt nun die gewünschte Aktion aus und greift dazu auf die Modelle der Applikation zu und manipuliert diese. Schließlich überlässt der Action-Controller die Daten der View-Komponente zur Darstellung. |
Sie werden im Folgenden die Grundstruktur eines MVC anhand der Beispielapplikation GP-Blog kennenlernen. Die Modelle sowie die View-Komponenten folgen in den späteren Kapiteln, die sich mit den Komponenten PersistentObject und Template beschäftigen.




Ihre Meinung






