Das könnte dich auch interessieren

Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 6

Extension-Entwicklung neu durchdacht: TYPO3 und das MVC- Konzept

Seit kurzem stehen die Extensions „lib“ und „div“ im TYPO3 Extension Repository (TER) zum Download bereit, die das Model-View-Controller Konzept (MVC) in TYPO3 für die Extensionentwicklung bereitstellen. Das Ziel der Extensions liegt hauptsächlich darin eine alternative Bibliothek zur Klasse „pi_base“ für große TYPO3-Extension-Projekte zu bieten. Die Entwicklung wird von der TYPO3 Association geleitet (Newsgroup: Extensions-Coordination-Team), Hauptentwickler ist Elmar Hinz.

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.

Links und Literatur

  1. TYPO3 4.0 Handbuch für Entwickler, Kai…
  2. Newsgroup des Extension-Coordination Teams

Finde einen Job, den du liebst zum Thema TYPO3, PHP

Schreib den ersten Kommentar!

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen