T3CON07: Content Respository

In der kommende Version 5.0 von Typo3 (bzw. dem Framework) wird als zentrale Instanz zur Datenverwaltung ein so-genanntes Content Repository (CR) zum Einsatz kommen. Ein CR kennt nur Knoten, die einen bestimmten Typ und verschiedene Eigenschaften besitzen können. Die Knoten sind hierarchisch in einem Baum organisiert, ähnlich XML. Das CR stellt nun eine einheitliche Schnittstelle zum Schreiben und Lesen der Knoten bereit. Darüber hinaus werden aber auch automatisch Funktionen wie indizierte Suche und Versionierung für alle Knoten eines CR unterstützt. Das CR darf jedoch nicht mit einer herkömmlichen Datenbank verwechselt werden. Vielmehr ist es eine Abstraktionsschicht, die unabhängig von der eigentlich Methode zur Speicherung von Daten eingesetzt werden kann. Standardmäßig verwendet Typo3 5.0 zum Beispiel eine SQlite-Datenbank. Alternativ kann auch eine „ausgewachsene“ relationale Datenbank verwendet werden. Bei der Wahl der Schnittstellen zum CR sind der Phantasie quasi keine Grenzen gesetzt, wie David Nüscheler in seinem Vortrag eindrucksvoll bewiesen hat, als er über eine Webdav-Schnittstelle einige Photos per Dateimanager in ein CR kopierte, um dann keine Minute später im Webbrowser die Bilder in einer Galerie anzusehen und nach bestimmt Schlagworten zu durchsuchen („Zeige alle Bilder, die mit einer Kamera von Hersteller XY aufgenommen wurden.“). Weitere Informationen zum Thema CR gibt es auch bei Wikipedia (http://en.wikipedia.org/wiki/Content_repository_API_for_Java).

Karsten Dambekalns hat dann in seinem Vortrag erläutert, welche Schwierigkeiten die Umsetztung eines CRs für Typo3 ergeben. Es gibt nämlich bisher keine PHP-Implementierung des JCR-Standards, nur einige API-Implementierungen. Für Typo3 5.0 soll der JSR-283-Standard Verwendung finden. Allerdings gibt es bei der Implementierung einige Hürden zu beachten, die vor allem aus dem unterschied zwischen den Programmiersprachen entstehen, da JSR-283-Standard primär für Java gedacht ist, nicht für PHP. So muss nun zum Beispiel das Typenkonzept für PHP angepasst werden.

Es existieren beireits einige Code-Teile, die dieses äußerst interessante Konzept für Typo3 umsetzten, bis Ende des Jahres soll die Entwicklung abgeschlossen sein.

Eine weitere Neuerung für Typo3 5.0 hatte ich bereits erwähnt: Typo3 5.0 soll an sich nur ein Framework sein (ein sehr leistungsfähiger wenn man sich die Planung ansieht), die CMS-Funktionalitäten werden in einem Modul (in T3 5.0 „Package“ genannt) gekapselt. So können zum Beispiel die Vorzüge des CR auch in eigenen Anwendungen Verwendung finden, ohne den CMS-Balast mit herumzuschleppen.
Update: Vortrags-Folien zu “ JSR-170 and the Java Content Repository“ (David Nüscheler) und “ Implementing a JSR-283 Content Repository in PHP“ (Karsten Dambekalns) sind Online.