Anzeige
Anzeige
Software & Entwicklung
Artikel merken

Der lange Weg nach Phoenix: TYPO3 5.0

TYPO3 ist mittlerweile ein enorm erfolgreiches CMS. Aus dem kleinen Programm des Dänen Kasper Skårhøj ist ein leistungsfähiges System geworden. Doch die Konkurrenz schläft nicht. Um weitere fünf, zehn oder mehr Jahre Erfolg zu haben, muss sich TYPO3 weiterentwickeln. Ziel ist es, mit aktuellen Techniken eine neue Basis zu schaffen, die sich dennoch wie TYPO3 anfühlt und die Seele des Systems erhält.

5 Min. Lesezeit
Anzeige
Anzeige

Die weite Verbreitung von TYPO3 ist für die Arbeit an Version 5 Segen und Fluch zugleich. Die geplante und notwendige Runderneurung des Systems bedeutet den Bruch mit der seit Jahren aktiv gepflegten Kompatibilität des Systems zu älteren Extensions und Inhalten. Außerdem fällt es mitunter schwer bei Null anzufangen, wenn man den Funktionsumfang und die Flexibilität von TYPO3 vor Augen hat.

Gründe für den Neuanfang

Anzeige
Anzeige

Dennoch gibt es gute Gründe für eine fundamentale Erneuerung des Systems von innen heraus:

  • Die Komplexität des TYPO3-Kernsystems sorgt für eine lange Einarbeitungszeit und die Architektur ist an einer Grenze angelangt, die die weitere Entwicklung erschwert.
  • Das Datenmodell ist zu unflexibel und der direkte, SQL-zentrierte Zugriff verursacht zahlreiche Probleme
  • Neue PHP-Versionen bieten wesentlich bessere Möglichkeiten um Objektorientierung umzusetzen, das Fehler-Handling zu verbessern und den Entwicklern durch saubere Schnittstellen Freude zu machen
  • Die Nutzung neuer innovativer Techniken wird durch die notwendige Abwärtskompatibilität beschränkt
  • Eine neue Architektur kann bessere Konnektivität mit Drittsystemen durch Einbindung von Standardprotokollen wie SOAP oder WebDAV bieten

All diese Gründe führten nach zahlreichen vorbereitenden Diskussionen zur Gründung eines Projekts [1], das die Entwicklung einer neuen TYPO3-Version verfolgt.

Anzeige
Anzeige

Die nächsten Schritte

Um die weiteren Arbeiten aufeinander abstimmen zu können, wurde eine grundlegende Roadmap erarbeitet [2]. Die Meilensteine sind:

Anzeige
Anzeige
  1. Datenzugriff und grundlegende Komponenten
  2. Rechte, Internationalisierung, Lokalisierung
  3. Das Frontend wird wieder geboren
  4. Das Backend erhebt sich aus der Asche

In der Folge sind Preview-Releases geplant, in deren Umfeld weit verbreitete Extensions auf das neue System migriert und weitere Funktionen im Backend implementiert werden. Neben der Entwicklung angepasster Coding-Richtlinien stehen im ersten Schritt vor allem zwei Dinge im Mittelpunkt: die grundlegende Architektur des Systems und die Datenhaltung.

Auf dem Entwicklungs-Server [3] kann der Status der Arbeiten verfolgt werden, ebenso ist dort die aktuelle Code- und Projekt-Dokumentation verfügbar. Wie schnell sich der Status des Projekts verändert, ist momentan nicht abzusehen, daher enthält die Roadmap auch keine Zeitangaben. Mittelfristig ist eine direkte finanzielle Unterstützung der Entwicklung die beste Möglichkeit, die Arbeiten zu beschleunigen.

Anzeige
Anzeige

Eine moderne Basis: PHP6

Mit dem Neuanfang wird es möglich, konsequent objektorientiert zu entwickeln, Fehler der Vergangenheit zu vermeiden und neue Technologien einzusetzen. Ein Beispiel hierfür ist die Behandlung unterschiedlicher Zeichensätze. Bisher kann man in TYPO3 entweder das „zur Sprache gehörige“ Encoding verwenden oder das Gesamtsystem auf ein Encoding festlegen. Damit ist auch die Nutzung von UTF-8 möglich, aufgrund fehlender Unterstützung durch PHP ist dies jedoch mit Problemen verbunden und führt noch nicht dazu, dass wirklich alle Daten im System in UTF-8 kodiert sind.

Mit PHP6 wird eine vollständige Unterstützung für Unicode eingeführt, womit sich auch für die Entwicklung von TYPO3 neue Möglichkeiten ergeben. Um diese Möglichkeiten von Beginn an nutzen zu können, wird PHP6 eine Grundvoraussetzung für den Betrieb von TYPO3 5.0 sein. Diese Entscheidung verzögert die weitere Entwicklung allerdings nicht, da bereits Ende dieses Jahres eine Preview-Version von PHP6 veröffentlicht werden soll.

Ein Content-Repository für TYPO3

Die bisherige Speicherung aller Daten in einer relationalen Datenbank ermöglicht zwar große Flexibilität für den Entwickler, wenn es um Abfragen geht. Erweiterungen des Datenmodells führen jedoch schnell zu Tabellenstrukturen, die durch zahlreiche Felder unübersichtlich, fehleranfällig und wenig performant werden. Beliebige Datenstrukturen alternativ als XML abzulegen ist allerdings auch nicht optimal: Die darin enthaltenen Daten können mit SQL nicht durchsucht werden. Kompatibilität ist ein weiteres Problem bei der Nutzung von SQL. Unterschiede zwischen Datenbanksystemen sind nur schwer auszugleichen, wenn das SQL dezentral und in einer Vielzahl von Stilen entwickelt wird.

Anzeige
Anzeige

So wurde bei der Suche nach neuen Methoden zur Datenspeicherung schnell klar, dass ein vollständig hierarchisches System aus Knoten und dazugehörigen Attributen (in der Form von B-Trees) die nötige Flexibilität bietet und zudem sehr leistungsfähig implementiert werden kann. Ein solches Content-Repository hat eine Reihe von Vorteilen:

  1. Datenstrukturen sind flexibel und einfach erweiterbar
  2. Sicherheit kann auf höherer Ebene sichergestellt werden
  3. Daten sind zentral im Repository abgelegt (auch Dateien, Konfiguration etc.)
  4. Datenquelle kann abstrahiert werden (bei Speicherung in einem relationalen DBMS ist die Nutzung produktspezifischer Funktionen möglich)

Für den Zugriff auf eine solche Hierarchie aus Knoten benötigt man eine Schnittstelle. Auf der Suche nach solchen Schnittstellen stößt man unweigerlich auf eine Spezifikation aus der Java-Welt: JSR-170 [4]. Diese beschreibt unabhängig von einer konkreten Implementierung eine API zum Zugriff auf Content-Repositories in Java und beinhaltet bereits Methoden zum Session Handling, für Transaktionen und Workspaces.

Da es nicht sinnvoll ist, das Rad immer neu zu erfinden, wird TYPO3 diese API nutzen, um auf das Content-Repository zuzugreifen. Um schnell zu Ergebnissen zu kommen, wird zunächst Apache Jackrabbit genutzt, eine vollständige Implementierung von JSR-170 in Java. Die PHP-Java-Bridge ermöglicht den Zugriff, der bereits grundlegend funktioniert.

Anzeige
Anzeige

Bis zur Veröffentlichung einer fertigen Version von TYPO3 5.0 wird ein solches Repository in PHP implementiert, so dass der Betrieb von TYPO3 auch ohne Java möglich sein wird – dem Datenaustausch mit der Java-Welt steht jedoch nichts mehr im Weg.

Ein Nebeneffekt dieser Entwicklung im Bereich PHP: Es wird eine Implementierung von JSR-170 geben, die auch andere PHP-Projekte nutzen können – eine Möglichkeit, den Datenautausch zwischen unterschiedlichen Systemen grundlegend zu vereinfachen.

Qualitätssicherung

Ein wichtiger Punkt bei der Programmierung von TYPO3 5.0 ist die Qualität. Eine saubere Architektur nützt wenig, wenn sie fehlerhaft implementiert ist. Daher wird eine der grundlegenden Regeln sein, für jede Komponente Unit-Tests zu schreiben, wenn möglich noch vor der Implementierung. Eine solche testgetriebene Entwicklung erhöht die Qualität von Software und ermöglicht auch nach größeren Veränderungen die schnelle Überprüfung des Codes.

Anzeige
Anzeige

Es ist zudem möglich, die Tests automatisiert auf dem Entwicklungsserver durchzuführen, so dass für Programmierer und Aussenstehende der aktuelle Status sichtbar wird. Auch ein Testlauf direkt nach jeder Änderung am Code auf dem Entwicklungsserver ist denkbar. Durch solche und weitere Maßnahmen soll sichergestellt werden, dass TYPO3 5.0 auch im Detail noch besser wird als Version 4.

Nummer 4 lebt!

Die Entwicklung von TYPO3 5.0 bedeutet nicht das Ende für Version 4. Da es eine Weile dauern wird, bis Version 5 für den Produktiveinsatz geeignet ist, wird Version 4 parallel weiterentwickelt. Dies sichert die bisherigen Investitionen von Entwicklern, Agenturen und Unternehmen. Die weiteren Änderungen an Version 4 werden neben Bugfixes vor allem Verbesserungen im Bereich der Usability sein. Die dabei erarbeiteten Konzepte kommen auch zukünftigen TYPO3-Versionen zugute.

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