Dokumentenkorb
  • Der Dokumentenkorb ist leer.

    Um ein Dokument in den Korb zu legen können Sie es per Drag'n'Drop von der Seite in den Korb ziehen

Die Model-View-Controller Architektur

Das Model-View-Controller-(MVC-)Paradigma ist ein bewährter Lösungsansatz  zur Entwicklung von Software-Programmen, die durch Benutzereingaben gesteuert werden. Hintergrund des MVC-Ansatzes bei der Software-Entwicklung ist es, übersichtlicheren Programmcode zu erstellen und Teile des Code wiederverwertbar zu machen. Bei TYPO3 kommt das MVC-Paradigma vorrangig für die Extensionentwicklung zum Einsatz.

Das MVC-Paradigma bezogen auf Webanwendungen aus TYPO3 umfasst:

  • Model (Modell): das Modell verwaltet die eigentlichen Daten und kombiniert sie mit der Anwendungslogik.
  • View (Präsentation): Der View ist für die Darstellung der vom Modell neu erzeugten Daten zuständig. Er kann Informationen ausd dem Modell abrufen und darstellen. Er wird über Änderungen des Modells informiert und nimmt Nutzereingaben entgegen.
  • Controller (Steuerung): Der Controller ermöglicht die Steuerung durch den Anwender und empfängt von Ihnen Nutzeraktionen (Aktions), wertet diese aus und beantwortet sie. Er ordnet also die Aktions den konkreten Operationen innerhalb des Modells zu.

Meist arbeiten ein View und ein Controller zusammen, während das reine Modell von beiden zunächst nichts wissen muss. In manchen komplexeren Anwendungsfällen können auch mehrere Modelle programmiert werden und nur von einem View und Controller angesprochen werden. Das MVC-Konzept ermöglicht so, dass der Programmcode nicht nur wiederverwendet, sondern auch später leichter geändert werden kann.

Die Vorteile des MVC-Ansatzes
  • Die Programmteile sind soweit wie möglich voneinander unabhängig
  • Übersichtlicher Programmcode hinsichtlich Komplexität und Kapselung der Komponenten
  • Programmierer werden durch MVC angehalten gut struktureierten Code zu schreiben
  • Programmierer können Ihren Fähigkeiten entsprechend optimal eingestzt werden
  • Austauschbarkeit und Wiederverwendbarkeit aller Komponenten

Und sehr wichtig:

Das neue TYPO3 5.0, das derzeit noch entwickelt wird, unterstützt zukünftig vollständig den MVC-Ansatz bei der objektorientierten Programmierung. So ist es sinnvoll, bereits zu einem früheren Zeitpunkt bei der Entwicklungsarbeit unter TYPO3 komplett auf MVC zu setzen.

Entwicklung von Extensions nach MVC

Wer sich mit der Entwicklung von MVC basierten Extensions beschäftigen möchte, dem stehen derzeit vier Möglichkeiten zur Verfügung:

  1. Mit den beiden MVC-Extensions "lib/div" stehen bereits Klassenbibliotheken für die MVC-Programmierung im TER zur Verfügung.
  2. Man programmmiert nach dem MVC-Paradigma quasi "zu Fuß". Also in PHP jeweils das Modell, den View und den Controller programmieren, die Programmteile später in das vom Kickstarter generierte Gerüst integrieren und die Extension fertigstellen.
  3. Ab TYPO3 in der Version 4.3 ist die neue "extbase"-Extension enthalten. Mit ihr ist es möglich, nach dem MVC Paradigma Extensions zu programmieren, die zudem FLOW3 abwärtskompatibel sind.
  4. AOE media hat auch ein eigenes, auf TYPO3 aufbauendes, MVC-Framework entwickelt. Es integriert die Konzepte von MVC und domain-driven Design in den TYPO3 Core und unterstützt uns bei der Realisierung leistungsfähiger TYPO3 Anwendungen und Extensions. Weitere Informationen
Entwicklung mit den "lib/div"-Extensions

Die erste Variante ist hier sicherlich die einfachere. Hier sollte man

  1. Die Extensions "lib" und "div" und "kickstarter mvc" aus dem TER in TYPO3 herunterladen und installieren
  2. Im Kickstarter eine neue Extension anlegen.
  3. Im Order der neuen Extension finden sich durch "lib/div" automatisch generierte Unterordner "controllers", "models", "static", "views" und "views/template"
  4. Durch "lib/div" finden sich nun bereits neun verschiedene PHP-Klassen für die Ansprache der Daten-Objekte oder Objekt-Arrays nach dem Modell-Ansatz, die PHP-View-Datei sowie die PHP-Controller-Datei.
  5. Mittels gängigem PHP-Coding lassen sich die Klassendateien nun in eine sinnvolle Programmlogik einer Extension einbetten
Entwicklung mit einer selbstprogrammierten MVC-Extension

Prinzipiell ist es auch möglich eine eigene MVC-Extension zu entwickeln und diese in das TYPO3-Framework zu integrieren. Diese bietet dann den Vorteil, dass neben der reinen Aufteilung des Source-Codes in die drei Teile Modell, Präsentation und Steuerung auch weitere Anpassungen an realen Anforderungen möglich sind. So lassen sich beispielsweise innerhalb einer eigenen MVC-Extension für die Frontend-Extension-Entwicklung auch bereits immer wiederkehrende Klassenbiblioteken integrieren. Dadurch können sowohl die Entwicklungszeiten reduziert als auch die Gesamtkosten der Programmierung deutlich gesenkt werden.

Case Study

congstar GmbH

  • 1Hochflexibles Templating System für maximale Designflexibilität.
  • 2Abstraktion der Shop Logik zur direkten Verzahnung mit dem CMS.
  • 3Umfangreiche Google Maps Integration im congstar Aufladefinder.

Lesen Sie die Case Study:

Besucher Historie