Anzeige
Anzeige
Software & Entwicklung
Artikel merken

Neues Jahr, neuer Code, neue Ziele: TYPO3 5.0 aktuell

Die Arbeit an TYPO3 5.0 und FLOW3 schreitet stetig voran. So entstand in den vergangenen Wochen unter dem Namen „Fluid“ eine neue Templating-Engine. Außerdem wurden zahlreiche Neuerungen von PHP 5.3 in FLOW3 integriert.

4 Min. Lesezeit
Anzeige
Anzeige

Bier und andere Flüssigkeiten

Während der TYPO3 Transition Days nach der T3CON08 wurden die ersten Konzepte für eine neue Template-Engine entwickelt – damals noch unter dem Arbeitstitel „BEER3“. Seitdem haben Sebastian Kurfürst und Bastian Waidelich enorme Fortschritte erzielt. Die mittlerweile auf den Namen „Fluid“ getaufte Entwicklung wird die neue Standard-Template-Engine für TYPO3 werden.

Anzeige
Anzeige

Mit dem schon von FLOW3 bekannten Ansatz, die Fehler anderer zu vermeiden und nur Rosinen herauszupicken, entstand eine einfache und zugleich mächtige Syntax für das Templating. Darüber hinaus ist es möglich, eigene Helper zu programmieren, die spezielle Funktionen zur Verfügung stellen. Diese werden im Template einfach als Tag eingebunden.

Einzigartig im Vergleich mit anderen Template-Engines ist jedoch die Unterstützung für automatische Vervollständigung [1] beim Entwickeln von Templates, sofern der verwendete Editor XML-Schema unterstützt. Durch den in Fluid integrierten Generator für XSD-Dateien können so problemlos auch eigene Helper unterstützt werden.

Anzeige
Anzeige

Namespaces und andere Gründe für PHP 5.3

Mit der dritten Alpha von PHP 5.3 wurde die neue Syntax für Namespaces in PHP nach langen und teils hitzigen Diskussionen festgelegt. Statt des bisher verwendeten doppelten Doppelpunkts (::), der auch als „scope resolution operator“ verwendet wird und daher einige Probleme aufwarf [2], wird nun der Backslash (\) verwendet.

Anzeige
Anzeige

Wenige Tage nach Veröffentlichung der dritten Alpha wurden der Quelltext von FLOW3 und die entsprechenden Pakete in der Distribution auf die neue Syntax umgestellt. Die Umstellung verlief ohne große Probleme, einige Folgefehler wurden in den Tagen darauf behoben. Geholfen bei der fast reibungslosen Umstellung haben nicht nur die Unit Tests, sondern auch die Coding-Guidelines, die beispielsweise mit ihrer Forderung nach einfachen Anführungszeichen dafür sorgen, dass unerwartete Effekte durch den Backslash in Strings ausbleiben. Ein Nachteil der neuen Syntax ist jedoch nach wie vor, dass alle verwendeten Tools, vom Dokumentationsgenerator bis zur IDE, Probleme damit haben. Dies bedeutet momentan Programmieren wie in alten Zeiten, ohne API-Doku und Code-Completion. Es bleibt abzuwarten, welche IDE im Support für Namespaces das Rennen macht – Zend Studio wird es wohl nicht werden.

Neben Namespaces macht FLOW3 auch von anderen Neuerungen in PHP 5.3 regen Gebrauch. Im Zusammenhang mit der Signals-Slots-Implementierung spielen Closures [3] eine wichtige Rolle und durch den Einsatz von „SplObjectStorage“ [4] konnten einige Stellen optimiert werden, an denen Arrays zur Ablage von Objekten genutzt wurden. Begeistert hat dabei, wie prompt die PHP-Entwickler teilweise auf Vorschläge reagieren: So hat „SplObjectStorage“ jetzt eine addAll()-Methode.

Anzeige
Anzeige

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.

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.

Anzeige
Anzeige

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:

Anzeige
Anzeige
  • 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 TYPO3 5.0 und FLOW3 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.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige