Am vergangenen Donnerstag durften wir auf der TYPO3 Convention 2008 einen aktualisierten Blick in das PHP5-Applikationsframework FLOW3 werfen dürfen, welches auch die Grundlage für TYPO3 5.0 bildet. Bereits im vergangenen Jahr wurde die TYPO3-Messe von diesen Themen dominiert, dieses Jahr gab es etwas konkretere Beispiele zu sehen.
Das Framework vereint hierbei viele Vorgehensweisen aus anderen Frameworks (wie dem Zend Framework oder Rails) mit Ideen aus der Java-Welt und dem bekannten Java-Framework Spring. Hierbei kommen auch Konzepte zum Einsatz, die bisher noch nicht in der PHP-Welt zu finden waren. Einige Beispiele werden im Folgenden kurz vorgestellt:
- Als ein gutes Beispiel kann hier Aspect Oriented Programming (AOP) genannt werden. Hierbei werden alle Klassen einer FLOW3-Anwendung automatisch über Reflection analysiert und bei Bedarf um verschiedene Funktionen erweitert. Au-ßerdem ist es Entwicklern in sogenannten Aspects möglich, die Abläufe an bestimmten Stellen der Programmausführung dynamisch zu verändern. Diese Stellen, sogenannte „cross-cutting concerns“, können beispielsweise genutzt werden, um während der Laufzeit zu prüfen, ob der jeweilige Benutzer überhaupt berechtigt ist, die aktuelle Aktion auszuführen.
- Ein weiteres Prinzip, das den meisten PHP-Entwicklern bisher noch neu vorkommen sollte, ist Domain Driven Design. Hierbei soll es den Entwicklern ermöglicht werden, sich auf die Umsetzung der jeweiligen Geschäftslogik zu konzentrieren. Nebenschauplätze wie Persistenz oder Sicherheit werden entweder automatisch von FLOW3 oder über AOP adressiert.
- Um die Speicherung von Objekten kümmert sich das eigens entwickelte Content Repository nach JSR-283 Standard. Hierbei erstellt der Entwickler ausschließlich PHP-Objekte mit entsprechender PHP-Dokumentation, ohne über XML oder YAML eine Konfiguration erstellen zu müssen. FLOW3 erkennt anhand der Klassenkonfiguration, den Attributen und Methoden sowie den dazugehörigen Dokumentationen automatisch alle zu speichernden Werte. Die Persistenz soll in Kürze in einem eigenem Beitrag genauer erläutert werden. Bereits vor seiner endgültigen Fertigstellung schlägt das TYPO3 Content Repository jedoch bereits Wellen: TYPO3 5.0 Core Entwickler Karsten Dambelkans wurde als Mitglied zum JSR-283-Standard-Ausschuss berufen – eine Ehre, die nur den Größten der Software-Szene zuteil wird.
- Während in herkömmlichen Anwendungen alle Abhängigkeiten innerhalb der Objekte selbst festgelegt werden, kann Dependency Injection dafür sorgen, dass starre Abhängigkeiten reduziert werden. FLOW3-Komponenten lassen sich so flexibel je nach Laufzeitumgebung und Konfiguration austauschen und so auf die situativen Umstände der Anwendung anpassen.
Um das Framework prinzipiell nutzen zu können, ist PHP Version 5.3 Pflicht. Dies liegt nicht zuletzt daran, dass FLOW3 bereits jetzt Namespaces nutzt, um seine Klassen zu ordnen. Zum jetzigen Zeitpunkt liegt diese Entscheidung Entwicklern noch relativ schwer im Magen, da noch keine Entwicklungsumgebungen existieren, die Namespaces direkt unterstützen.
Oben genannte Operationen sind jedoch relativ rechenintensiv, so dass ein zentrales Prinzip auch in FLOW3 und TYPO3 5.0 erhalten geblieben ist: das Caching. So werden alle Ergebnisse der Klassenanalyse und –erweiterung in einem Datenordner zwischengespeichert und so auf Performance optimiert. Trotzdem versprechen die Core-Entwickler auch in der ungecachten Verarbeitung noch deutliche Geschwindigkeitsverbesserungen. In diesem Zusammenhang konnte Robert Lemke jedoch gleich allen Zuhörern fünf Tipps auf den Weg geben, die bereits für TYPO3 4.x oftmals Geltung hatten:
1. Immer die aktuellste Version !!!
2. Cache leeren !!!
3. Dokumentation lesen !!!
4. Newsgroups durchsuchen !!!
5. Es ist kein Fehler, sondern ein fehlendes Feature !!!
Insgesamt sieht FLOW3 (wie übrigens schon im vergangenen Jahr) sehr vielversprechend aus. Die Resonanz, die verschiedene Universitäten und sonstige Organisatoren zeigen, bestätigt dies. Bestehen bleiben jedoch einige Zweifel, ob es je zu einem Abschluss der Arbeiten kommt. Doch hier konnte Robert Entwarnung geben: Bereits Ende des Jahres sei mit einer stabilen Beta-Version oder gar einer ersten finalen Version des Frameworks zu rechnen. So dieser Zeitpunkt eingehalten werden kann, ist davon auszugehen, dass mit FLOW3 dann das wohl mächtigste PHP Anwendungs-Framework seiner Zeit auch aus dem Hause TYPO3 stammt.
0 Kommentare