Das ursprünglich von Trygve Reenskaug als „Seeheim-Modell“ [1] beschriebene MVC-Konzept wurde anfänglich vor allem für Benutzeroberflächen in der Programmiersprache „Smalltalk“ genutzt. Das war wohl in den 70ern und seit dem hat es sich als Standard bei komplexen Softwaresystemen etabliert. Die Kommunikation erfolgt bei Desktop-Anwendungen meist über „Events“. Das kann zum Beispiel ein Schieberegler, ein Mausklick oder die Auswahl einer Schaltfläche sein. In Webanwendungen spricht man meist von "Actions“. Die Trennung in Controller (Steuerung der Anwendung durch den User), Model (Programmlogik/Datenquelle) und View (Ausgabe der Daten) ermöglicht das Aufteilen der Anwendung in unabhängige Klassen und deren Austauschbarkeit, bei gleichzeitiger Erhöhung der Übersichtlichkeit der Anwendung. Meist spielen ein View und ein Controller zusammen, wohingegen das Model nichts von beiden weiß. Bezogen auf Webanwendungen verwaltet das Model also die Daten, der View stellt diese in HTML dar, und der Controller steuert beide aufgrund der empfangenen GET/POST-Parameter, welche ja wiederum vom View (zum Beispiel in Form eines Formulars) bereitgestellt wurden. Das MVC-Konzept ermöglicht so, durch seine klare Strukturierung Änderungen und Erweiterungen zu einem späteren Zeitpunkt ohne größere Probleme durchzuführen.
Vorteile der MVC-Architektur
- Alle Teile sind unabhängig und austauschbar
- „Zwingt“ den Programmierer sauberen Code zu programmieren
- Erhöht die Übersichtlichkeit durch Reduzierung der Komplexität und die Kapselung der Komponeten
- Fachkräfte können optimal Ihren Fähigkeiten entsprechend eingesetzt werden
- Hoher Wert durch Wiederverwendbarkeit aller Komponenten
- Der View kann auch in Java oder z. B. in einer Shell erstellt werden, womit sich komplett neue Möglichkeiten für TYPO3 Anwendungen ergeben
Warum MVC und Typo3?
- Bereitet TYPO3 auf die konsequente Nutzung von PHP5 vor
- Löst Probleme beim Entwickeln von Extensions mit der Klasse „pi_base“
- Soll Entwicklern die TCE-Programmierung vereinfachen, da lib und div Einzug in den Core finden sollen.
- Flexibel durch "Addons" erweiterbar
- Für reine TYPO3-Programmierer ein Grund, sich mit PHP5 zu befassen
- Mit libtest wird das Testen der Anwendung vor dem eigentlichen Programmieren möglich, ähnlich wie bei PHPUnit.
- Ermöglicht große TYPO3-Extension-Projekte
- Mehr Spaß bei der Extensionentwicklung
Der Controller
Der Controller kann als dünner Adapter zwischen Ereignissen (GET/POST Parameter) auf der Webseite, welche vom View bereitgestellt wurden, und den Operationen des Models angesehen werden. Er ordnet also nur zu, welche Benutzerinteraktion (Action) welche Operationen im Model auslöst und welcher View angezeigt werden soll. Im Controller sollte keine Logik implementriert werden, er ist mehr die Intelligenz der Anwendung, also die Definition, wie der Benutzer auf die Daten des Models zugreifen kann.
Der View
Der View ist für die Präsentation der Daten verantwortlich und kennt meist seinen Controller und auch sein Model. Er kann Informationen aus dem Model abrufen und darstellen. Der View wird bei Änderungen des Models darüber informiert und gibt die Daten wieder passend aus. Eine Änderung des Views wird meist direkt vom Controller angestossen. Der View stellt die Aspekte des Zustandes eines Models dar.






2 Antworten
von TYPOP3 Extension Development von Dmitry… 01.05.2009 (18:22Uhr) 1.
[...] wurde (man möge mir verzeihen, wenn es doch so war). Übrigens wurde das wichtige Thema MVC leider überhaupt nicht behandelt und auch die Vorteile von PHP5 im Vergleich zur Vorgängerversion [...]
von TYPO3camp Munich – Einführung in… 10.10.2009 (13:26Uhr) 2.
[...] http://t3n.de/magazin/typo3-mvc-konzept-extension-entwicklung-neu-durchdacht-219750/ [...]