Informationen über FLOW3
Nach nunmehr 12 Jahren aktiver Weiterentwicklung des Content Management Systems TYPO3 ist vor einiger Zeit beschlossen worden, die Nachfolgeversion TYPO3 v5 mithilfe eines zukunftsfähigen und auf modernsten Programmiertechniken fußenden neu entwickelten PHP-Frameworks zu erstellen. Das Ergebnis mit Namen FLOW3 ist in der objekt- und aspektorientierten Softwareszene mit Begeisterung aufgenommen worden.
FLOW3 bringt als erstes "Baukastensytem" der PHP-Welt aktuelle Programmierparadigmen wie Aspektorientierung, Domain Driven Design (DDD), Dependency Injection und weitere zusammen. Zudem ist es die weltweit erste PHP-Implementierung des JSR-283 Content Repository Standards.
Durch seinen klaren Fokus auf sauberer Umsetzung und Verwaltbarkeit, dem Einsatz modernster Technologien und dem Anspruch das umfassendste "Enterprise-Ready"-PHP-Framework zu werden verspricht FLOW3 das System der Wahl für anspruchsvolle PHP-Projekte zu werden - auch zwar auch unabhängig von TYPO3.
Weitere Informationen zu FLOW3 finden sich auf der Projektseite http://flow3.typo3.org.
Und was ist mit TYPO3 v4?
Voraussichtlich noch im Mai diesen Jahres wird die Version 4.3 von TYPO3 erscheinen. Neben weiterer interessanter Neuerungen, wie z.B. dem verbesserten Frontend-Editing, dem neuen Caching-System und OpenID-Integration, wird die neue Version mit einem MVC-Framework ausgeliefert, das mittelfristig die antiquierte tslib_pibase ersetzen soll. Die Model-View-Controller-Architektur (MVC) ermöglicht eine saubere Trennung von Datenmodell (Model), Darstellung (View) und Applikationslogik (Controller). Das neue Framework wird die spätere Wiederverwendbarkeit bzw. Portierung von Extensions, die damit für TYPO3 v4 erstellt werden, für die kommende Version TYPO3 v5 erheblich vereinfachen. Außerdem wird so endlich ein offiziell unterstützter MVC-Ansatz bereitgestellt, es muss nicht mehr auf diverse zueinander inkompatible MVC-Extensions zurückgegriffen werden.
Auf der TYPO3-Snowboardtour im März (T3BOARD09) wurde der Backporter ins Leben gerufen, ein Script, mit dem sich FLOW3-Klassen per Klick in PHP5-kompatible Dateien umwandeln lassen. So konnte das neue FLOW3-Template-System Fluid, dank der klaren Trennung in Kern- und Erweiterungsklassen, innerhalb weniger Stunden in eine funktionierende TYPO3-Extension portiert werden. Fluid wird ebenfalls Bestandteil des nächsten TYPO3-Updates.
Fazit
Insgesamt sind in den letzten Monaten noch unzählige weitere Funktionen und Änderungen in das Projekt eingeflossen. Zum Beispiel wurden viele Prozesse im MVC-Framework automatisiert, so dass für eigene Implementierungen in den meisten Fällen nur noch sehr wenig Code nötig ist. Außerdem hat sich die Performance von FLOW3 im letzten halben Jahr immens verbessert.
Seit September 2008 wurden über 140 Issues geschlossen, die die FLOW3-Distribution und mitgelieferte Packages betreffen.
Eine Übersicht über neue und geschlossene Issues im FLOW3-Bugtracker bietet das folgende Diagramm (betrachteter Zeitraum: Anfang September 2008 bis Ende März 2009).
März 2009
- Die Querysyntax des Content Repositorys (TYPO3CR) wird erweitert, die Performance deutlich gesteigert.
- Da die Zend-Implementierung der Lucene-Engine sehr schwerfällig ist, wird eine eigene Such-/Index-Lösung entwickelt. Das Lucene-Package ist damit obsolet und wird aus der Distribution entfernt.
- Nach Refaktorierung der Unit-Tests und diverser Klassen wird das TestPackage nicht länger benötigt und aus der Distribution entfernt.
Seit August 2008 gibt es auf typo3.org keinen TYPO3 v5 Project Report mehr. Für Außenstehende könnte der Eindruck entstehen, dass der Grund dafür in einer stagnierenden Entwicklung des Projektes zu finden ist. Aber das Gegenteil ist der Fall.
Das Team um Robert Lemke und Karsten Dambekalns arbeitet mit Hochdruck an FLOW3, dem PHP-Framework, auf dem die kommende TYPO3-Version basiert.
network.publishing ist aktiv an der Weiterentwicklung beteiligt und unterstützt den Fortschritt des FLOW3-Projekts durch Sponsoring der MVC-Routing-Komponenten und weiterer Features.
Im Folgenden möchten wir einen Überblick über die Entwicklung der letzten Monate liefern.
Februar 2009
- Die neue Template-Engine Fluid, die auf den Transition Days initiiert wurde, wird in die FLOW3-Distribution eingebunden. Im Blog-Beispiel, das auf der letzten TYPO3-Konferenz (T3CON08) vorgestellt wurde, wird Smarty durch Fluid ersetzt.
- Das Security-Framework wurde weiterentwickelt und bietet jetzt Unterstützung für RSA-basierte Logins. Somit wird ein in vielen Unternehmen eingesetztes, sehr sicheres und Einmal-Passwort-/Token-basiertes Authentifizierungsverfahren ermöglicht.
- Die Bootstrap-Datei index_dev.php wird entfernt. Der Ausführungs-Kontext kann jetzt über eine Umgebungsvariable gesetzt werden, z.B. durch einen Eintrag in der .htaccess-Datei.
- Funktions-Argumente in MVC-Actions müssen nicht mehr explizit angemeldet werden. Per Reflection werden die erwarteten Argumente ermittelt und validiert.
- Das Routing-Framework wird umgeschrieben und ist jetzt schneller und deutlich einfacher. Routen werden nun global an einer Stelle konfiguriert. Durch sog. optionale Route Parts verringert sich die Anzahl der zu definierenden Routen drastisch.
Januar 2009
- Die Lizenz von FLOW3 wird angepasst. Statt unter GPL v2 ist das Projekt jetzt unter der LGPL v3 or later lizenziert. Dank des Contributor License Agreement, das von allen Kernentwicklern unterschrieben wurde, stellte dieser Schritt kein juristisches Problem dar. Der Umstieg auf die LGPL v3 (auch "Library GPL" genannt) ermöglicht den Einsatz von FLOW3 in freien und kommerziellen Projekten ohne Einschränkungen - dies aber natürlich unter Wahrung der Urheberrechte. Der Sourcecode von Lösungen, die basierend auf FLOW3 entwickelt werden, muss somit nicht zwangsläufig offengelegt werden. Dies stellt für Unternehmen, die eigene Software mittels FLOW3 erstellen wollen, einen verbesserten Grad an Investitionssicherheit und Schutz von Intellectual Property dar.
- Nach einer grundlegenden Planungsphase wurden erste Teile des FLOW3 Package Repositorys (F3PR), das in Zukunft das TYPO3 Extension Repository (TER) ersetzen soll, entwickelt.
- Dateinamen werden umbenannt von der umständlichen langen Form „F3_FLOW3_Persistence_Exception_InvalidPropertyType.php“ zu der sehr viel besser lesbaren Variante „InvalidPropertyType.php“. Auch hier ermöglichten die vielen Unit-Tests eine schmerzlose Refaktorisierung.
Dezember 2008
- Durch den neu entwickelten File Monitor werden jetzt Caches bei Änderungen an den zugrundeliegenden Dateien automatisch neu aufgebaut. Ein wichtiger Komfortgewinn, der das manuelle Leeren von Caches während der Entwicklung erübrigt.
- Nachdem das PHP-Entwicklerteam die Syntax für Namespaces ändert, zieht das FLOW3-Team nach und passt sämtliche PHP-Dateien an. Durch die vielen Unit-Tests und Kontinuierliche Integration geht das ohne unerwartete Nebeneffekte vonstatten.
November 2008
- Wie auf den Transition Days in Berlin besprochen, wird das Format der Konfigurations-Dateien von PHP auf YAML geändert, was sich sehr positiv auf die Lesbarkeit der Einstellungen auswirkt.
- „Components“ heißen jetzt „Objects“. Da Singleton- und Prototypklassen auf unterschiedliche Art und Weise erzeugt werden, sinkt die Verwechslungsgefahr und damit die Fehleranfälligkeit beim Instanziieren von Objekten.
Oktober 2008
- Das MVC-Framework wird um View Helper erweitert. Mit dem URIHelper können jetzt sehr einfach Links zu anderen Actions, Controllern und Packages erzeugt werden.
- Als weitere Maßnahme gegen Cross-Site Scripting und SQL-Injection werden die SuperGlobals $_GET, $_POST und $_SERVER von FLOW3 ersetzt, so dass darauf nicht mehr direkt zugegriffen werden kann.
September 2008
- Kurz nachdem das PHP-Entwicklerteam eine erste Version für die Unterstützung von Namespaces implementiert, werden alle FLOW3-Klassen entsprechend angepasst.
- Eine PHP-Portierung der Open-Source-Java-Volltextsuche Lucene wird in die FLOW3-Distribution aufgenommen.
Seit August 2008 gibt es auf typo3.org keinen TYPO3 v5 Project Report mehr. Für Außenstehende könnte der Eindruck entstehen, dass der Grund dafür in einer stagnierenden Entwicklung des Projektes zu finden ist. Aber das Gegenteil ist der Fall.
Das Team um Robert Lemke und Karsten Dambekalns arbeitet mit Hochdruck an FLOW3, dem PHP-Framework, auf dem die kommende TYPO3-Version basiert.
network.publishing ist aktiv an der Weiterentwicklung beteiligt und unterstützt den Fortschritt des FLOW3-Projekts durch Sponsoring der MVC-Routing-Komponenten und weiterer Features.
Im Folgenden möchten wir einen Überblick über die Entwicklung der letzten Monate liefern.
Seit August 2008 gibt es auf typo3.org keinen TYPO3 v5 Project Report mehr. Für Außenstehende könnte der Eindruck entstehen, dass der Grund dafür in einer stagnierenden Entwicklung des Projektes zu finden ist. Aber das Gegenteil ist der Fall.
Das Team um Robert Lemke und Karsten Dambekalns arbeitet mit Hochdruck an FLOW3, dem PHP-Framework, auf dem die kommende TYPO3-Version basiert.
network.publishing ist aktiv an der Weiterentwicklung beteiligt und unterstützt den Fortschritt des FLOW3-Projekts durch Sponsoring der MVC-Routing-Komponenten und weiterer Features.
Im Folgenden möchten wir einen Überblick über die Entwicklung der letzten Monate liefern.