Evolution und Revolution

Vom Begriff der „Components“ hat sich das 5.0-Team zugunsten von „Objects“ verabschiedet und nach der Umbenennung hat Robert Lemke diesen Teil des Frameworks grundlegend überarbeitet. Herausgekommen sind dabei klarere Zuständigkeiten im Code und komplett überarbeitete Unit-Tests, die die bisherigen eher funktionalen Tests ersetzen.

Einzigartig: Fluid ermöglicht Auto-Vervollständigung in Templates sogar für eigene Helper durch einen XML-Schema-Generator.

Einzigartig: ermöglicht Auto-Vervollständigung in Templates sogar für eigene Helper durch einen XML-Schema-Generator.

Neu hinzugekommen ist YAML als Konfigurationsformat, sämtliche Konfiguration wurde auf das neue Format umgestellt. Es ist nach wie vor möglich, PHP zur Konfiguration zu nutzen, YAML hat sich aber als sehr lesbar und mächtig bewiesen. Ebenfalls neu ist die Möglichkeit der „settings injection“, mit der die Konfiguration eines Pakets wesentlich leichter als durch einen Aufruf des Konfigurations-Managers zugänglich wird.

Die angenehmste Neuerung jedoch, durch die ein großer Teil des erfolgten Bootstrap-Refactorings erst möglich wurde, ist die „object injection“. Bisher konnte man für die „Dependency Injection“ (DI) lediglich einen Objekttyp angeben. Jetzt kann man in der Konfiguration Instanzen von Objekten konfigurieren, die dann vom Objekt-Manager für die DI genutzt werden. Damit ist es zum Beispiel möglich, Caches komplett in der Konfiguration zu definieren und im Code per DI zu nutzen.

Sollte die damit gegebene Flexibilität nicht reichen, können darüber hinaus auch eigene Factories genutzt werden. Beispiele finden sich in der Datei „Objects.yaml“ im FLOW3-Paket [5].

Eher revolutionär sind die Änderungen an der Caching-Komponente. Ein Zusammenspiel von Signal-Slot-Mechanismus, Neuerungen im AOP-Framework, einer neuen Komponente zum Überwachen von Dateien und den Möglichkeiten der Cache-Konfiguration und -Injection sorgt für eine deutliche Beschleunigung des Frameworks. Dadurch werden auch bei Änderungen an Klassen und Aspekten die betroffenen Caches automatisch gelöscht und geänderte Proxy-Klassen neu generiert. Gegenüber dem bisher nötigen manuellen Löschen aller Caches bringt dies vor allem für Entwickler einen enormen Geschwindigkeitszuwachs.

Dies und Das

Neben den großen Baustellen hat das 5.0-Team auch zahlreiche kleinere Dinge in Angriff genommen:

  • TypoScript wurde weiter bereinigt und einige Prozessoren wurden implementiert.
  • Die Portierung von JSR-283 wurde weiter an die Änderungen in der Spezifikation angepasst.
  • Man kann sich jederzeit einen System-Logger per DI geben lassen, um Meldungen aus dem Code zu loggen.
  • Viele Unit-Tests wurden umfassend überarbeitet, um sie stärker zu entkoppeln und Seiteneffekte zu minimieren.

Eine weniger generelle Lizenz für FLOW3

Als die Entwicklung von 5.0 und begann, steckte die GPL v3 noch in den Kinderschuhen. Weil dem 5.0-Team die Tragweite der Änderungen nicht klar war, beschloss man, FLOW3 und die weiteren Komponenten ausschließlich unter der GLP v2 zu veröffentlichen.

Da eine spätere Änderung der Lizenz nicht ausgeschlossen werden konnte und sollte, wurde ein Contributor License Agreement eingeführt [6]. Zu Beginn des Jahres zahlte sich das aus, da FLOW3 und seine direkten Abhängigkeiten unter die Bedingungen der LGPL v3 (oder neuer) gestellt wurden. TYPO3, also das CMS selbst, steht nach wie vor unter der GPL.

Neue (alte) Ziele für 2009

In diesem Jahr kann das 5.0-Team FLOW3 endlich für das benutzen, wofür es geschaffen wurde: die Entwicklung eines CMS. Dabei wird das Team weiter an den technischen Konzepten feilen, Ideen für die Benutzeroberfläche sammeln und vor allem mit Volldampf an der Umsetzung der nötigen Funktionen arbeiten.

Seite:  1 2

Weitere Artikel zu TYPO3, Fluid und Flow3

Softlink 2300

Links und Literatur