1. Verwendung der Architektur MVC in Web-/PHP-Anwendungen
Das PDF des Dokuments ist verfügbar |HIER|.
Die Quellcodes des Dokuments sind unter |HIER| verfügbar.
Das Modell MVC (Model-View-Controller) zielt darauf ab, die Schichten Präsentation, Verarbeitung und Datenzugriff klar voneinander zu trennen. Eine Webanwendung, die diesem Modell entspricht, wird wie folgt aufgebaut:
![]() |
Eine solche Architektur wird oft als 3-Tier-Architektur oder 3-Schichten-Architektur bezeichnet:
- Die Benutzeroberfläche ist die Ansicht (V)
- die Anwendungslogik ist der Controller (C)
- die Datenquellen sind das Modell (M)
Die Benutzeroberfläche ist oft ein Webbrowser, es könnte sich aber auch um eine eigenständige Anwendung handeln, die über das Netzwerk Anfragen an den Webdienst sendet und die von diesem zurückgesendeten Ergebnisse aufbereitet. Die Anwendungslogik besteht aus Skripten, die die Anfragen des Benutzers verarbeiten. Die Datenquelle ist oft eine Datenbank, es können aber auch einfache Textdateien, ein Verzeichnis LDAP, ein entfernter Webdienst usw. sein. Der Entwickler sollte darauf achten, eine weitgehende Unabhängigkeit zwischen diesen drei Komponenten zu wahren, damit bei einer Änderung an einer Komponente die beiden anderen nicht oder nur in geringem Umfang angepasst werden müssen.
Die Architektur MVC eignet sich gut für Webanwendungen, die in objektorientierten Sprachen geschrieben sind. Die Sprache PHP (4.x) ist nicht objektorientiert. Man kann sich jedoch bemühen, den Code und die Architektur der Anwendung so zu strukturieren, dass sie dem Modell MVC näherkommt:
- Die Geschäftslogik der Anwendung wird in separate Module ausgelagert, die von den Modulen getrennt sind, die für die Steuerung des Anfrage-Antwort-Dialogs zuständig sind. Die Architektur MVC sieht dann wie folgt aus:
![]() |
Im Block [Logique Applicative] lassen sich unterscheiden:
- das Hauptprogramm oder den Controller, der den Einstieg in die Anwendung bildet.
- den Block [Actions], eine Sammlung von Skripten, die für die Ausführung der vom Benutzer angeforderten Aktionen zuständig sind.
- den Block [Classes métier], der die für die Logik der Anwendung erforderlichen PHP-Module enthält. Diese sind vom Client unabhängig. Beispielsweise muss sich die Funktion, die anhand bestimmter, als Parameter übergebener Informationen eine Steuer berechnet, nicht darum kümmern, wie diese Informationen gewonnen wurden.
- Der Block [Classes d'accès aux données], der die PHP-Module umfasst, die die für den Controller erforderlichen Daten abrufen, häufig persistente Daten (BD, Dateien, ...)
- die Generatoren für die Ansichten, die als Antwort an den Client gesendet werden.
In den einfachsten Fällen beschränkt sich die Anwendungslogik oft auf zwei Module:
- das Modul [contrôle], das den Client-Server-Dialog gewährleistet: Verarbeitung der Anfrage, Generierung der verschiedenen Antworten
- das Modul [métier], das vom Modul [contrôle] zu verarbeitende Daten empfängt und ihm im Gegenzug Ergebnisse liefert. Dieses Modul [métier] verwaltet dann selbst den Zugriff auf die persistenten Daten.

