Extbase

Beschreibung des PHP-Frameworks für TYPO3 Extensions.

Extbase ist ein Grundgerüst aus PHP-Klassen, das zur Erstellung einer TYPO3 Extension verwendet werden kann.

Das vollständig objektorientierte Framework verwendet verschiedene Paradigmen und Entwurfsmuster, die sich in der Softwareentwicklung bewährt haben:

Domain Driven Design

Das Domain Driven Design (DDD) findet in der Konzeptionsphase eines Softwareprojekts statt. Der Fokus liegt auf der Domäne der Anwendung — das heißt, den abzubildenden Objekten und Fachbegriffen der "realen" Welt — und nicht auf den zu verarbeitenden Daten. Diese Designmethode erfordert eine andere Denkweise als herkömmliche Techniken zur Erstellung objektorientierter Software.

Model View Controller

Model View Controller (MVC) ist ein weit verbreitetes Entwurfsmuster für Software. Darin wird eine klare Trennung zwischen dem Datenmodell (Model), der Präsentation (View) und der Steuerung (Controller) angestrebt. Ziele dieses Ansatzes sind unter anderem, die Wiederverwendbarkeit des Codes zu erhöhen, Änderungen zu beschleunigen und zu vereinfachen sowie die Datenausgabe flexibel gestalten zu können.

Entwicklern, die ihre Extensions bisher auf dem "üblichen" Weg (über die Erweiterung der Klasse tslib_pibase) programmiert haben, mögen die umfangreichen Konventionen bzgl. Verzeichnisstruktur und Namensgebung von Klassen und Dateien etwas ungewöhnlich und einengend erscheinen.

Die Vorteile werden jedoch schnell deutlich, da einem viele Tätigkeiten abgenommen werden und der erzeugte Code letztendlich wesentlich besser strukturiert ist.

Extbase ist in vollem Umfang ab der TYPO3 Version 4.4 funktionsfähig.

Eine TYPO3 Extension, die auf Extbase basiert, kann als gerüstet für zukünftige TYPO3-Versionen gelten. Die darin verwendete Klassenstruktur findet sich im Framework FLOW3 wieder, welches die Grundlage für die vollständig überarbeitete TYPO3 Version 5 ("Phoenix") darstellt. Eine Portierung auf diese neue Version sollte sich also relativ einfach bewerkstelligen lassen.

Zur Ausgabe von Inhalten und Daten wurde die Template-Engine Fluid entwickelt, die sich nahtlos in eine Extbase-Anwendung integrieren lässt.

Ein neuer und komfortabler Kickstarter für Extbase ist bereits in Entwicklung.