von Jochen Rau,
online veröffentlicht am 01.12.2009
Twittern 3 Teilen 2

Die Zukunft der Extension-Entwicklung: Neues MVC-Framework „Extbase“ ebnet den Weg von 4.x zu FLOW3

Aus dem
t3n Magazin Nr. 16

Jetzt kaufen

Mit der kommenden TYPO3-Version 5 und deren neu entwickelter Basis FLOW3 wird sich vieles an der bisher gewohnten Art ändern, für TYPO3 zu entwickeln. Die neue Version wird allerdings erst in einigen Monaten für den Einsatz in Produktiv-Umgebungen zur Verfügung stehen. Mit Extbase, einem neuen Framework für Extensions, das ab Version 4.3 fester Bestandteil von TYPO3 ist, können Entwickler schon heute ihre Extensions im Stil der Version 5 programmieren. Wir zeigen, was Extbase kann und wie das Framework funktioniert.

Im Oktober 2008 fanden in Berlin die „Transition Days“ statt. Die Mitglieder des Core-Teams erarbeiteten dort eine gemeinsame Vision und Strategie für den Übergang von der heutigen Version 4.x zur kommenden Version 5. Ein Ergebnis dieses überaus fruchtbaren Treffens war die Entscheidung, einen modernen Nachfolger für die Basisklasse „tslib_piBase“ zu entwickeln, auf der heute die Mehrzahl der über 3.600 TYPO3-Extensions basiert. Eine wichtige Zielsetzung für die Entwicklung des neuen Extension-Frameworks: Es soll die Lücke zwischen dem aktuellen 4er-Zweig und der kommenden 5er-Version überbrücken und sich so nahe wie möglich an den Ideen, der Architektur und den Schnittstellen von orientieren.

Auf den folgenden Seiten blicken wir aus drei verschiedenen Richtungen darauf, wie man in Zukunft Extensions mit Extbase entwickelt. Zunächst aus der Perspektive des „Auftraggebers“, dann anhand eines Beispiels aus dem Inneren einer Extension, abschließend blicken wir hinter die Kulissen des Frameworks.

Konzentration bitte!

Erfolgreiche Software-Projekte sind oft geprägt von einem gegenseitigen Lernprozess: Die Entwickler lernen, sich in der Domäne des Auftraggebers gedanklich und sprachlich zu bewegen. Der Auftraggeber lernt, anhand des entstehenden Codes nachzuvollziehen, ob die Struktur und Geschäftslogik seiner Domäne adäquat umgesetzt wurde. Das erfordert eine von allen Beteiligten gleich verstandene Sprache („Ubiquitous Language“).

Die Domäne des Auftraggebers wird während dieses gegenseitigen Lernprozesses in abstrahierte Softwareobjekte – das Domänen-Modell („Domain Model“) – übersetzt [1]. Objekte, die explizit nicht zum Domänen-Modell gehören sind solche, die für das Speichern und Wiederauffinden, die Validierung, Filterung und Darstellung von Daten zuständig sind. Diese werden weitgehend aus der Extension herausgenommen und in Extbase ausgelagert.

Eric Evans hat für diesen Entwicklungsprozess den Ausdruck „Domain-Driven Design“ geprägt [2] [3]. Der Vorteil dabei ist eine „natürlich“ anmutende Konzentration auf das Wesentliche: den Nutzen für den Auftraggeber. Extbase ist um das Konzept des Domain-Driven Design „herum gebaut“ und unterstützt diese Vorgehensweise optimal, ohne den Entwickler darauf zu beschränken.

Ein Beispiel für ein einfaches Domänen-Modell bietet die Extension „BlogExample“, die als Anwendungsbeispiel für Extbase im TYPO3 Extension Repository zum freien Download steht [4]. Das Domänen-Modell dieser Beispiel-Extension sieht wie folgt aus: Ein Blog (von dem es mehrere geben kann) hat einen Namen und eine Beschreibung. Es „enthält“ beliebig viele Posts. Ein Post hat wiederum einen Autor, einen Titel, einen Inhalt, ein Veröffentlichungsdatum usw. Einem Post können Stichworte (Tags) zugeordnet werden. Außerdem haben die Besucher des Blogs die Möglichkeit, Kommentare zu verfassen. Ein Blog besteht also aus einer Ansammlung („Aggregate“) von Objekten (Blog, Post, Comment, Tag), die in einer Art Baumstruktur enthalten sind. Die Baumstruktur hat genau ein Objekt als Wurzel („Aggregate Root“).

Das Domänen-Modell der Beispiel-Extension „BlogExample“.
Das Domänen-Modell der Beispiel-Extension „BlogExample“.

Seite:  1 2 3 4 5

Das interessiert dich bestimmt auch

4 Antworten

  1. von Wolfgang Becker 02.12.2009 (13:22Uhr) 1.

    Der Link zur Doku scheint nicht zu gehen:

    [5] http://typo3.org/extensions/repository/view/doc_extbase/current/
    Extbase-Dokumentation

    Wo kann man sonst noch die DOku finden?

  2. von TYPO3: Extension-Entwicklung mit Extbase… 12.02.2010 (11:25Uhr) 2.

    [...] Vorstellung des Frameworks in Ausgabe 16 durch Jochen Rau [...]

  3. von TYPO3: Meine ersten Erfahrungen mit Extb… 14.03.2010 (15:04Uhr) 3.

    [...] holte ich mir in den Fachartikeln der t3n: Die Zukunft der Extensionentwicklung, von Jochen Rau Fluid: Templating leicht gemacht, von Sebastian Kurfürst Extension-Entwicklung mit [...]

  4. von Die wahre Macht der neuen Template-Engin… 07.06.2011 (09:41Uhr) 4.

    [...] umfassenderes Prinzip, das als MVC (Model View Controller) bezeichnet wird und beispielsweise unter [1] näher erläutert [...]

Deine Meinung


(wird nicht veröffentlicht)