Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 2

Datenbankzugriff mal anders: TYPO3 4.0: DBAL

    Datenbankzugriff mal anders: TYPO3 4.0: DBAL

Mit Version 4.0 wird TYPO3 erstmals offiziell mit der Database-Abstraction-Layer-Extension (DBAL) ausgeliefert. Die Extension erweitert die Implementierung der im Kern des Systems vorhandenen API, um TYPO3 auch mit anderen Datenbanken als MySQL nutzbar zu machen.

Ein Datenbank-Abstraktions-Layer für TYPO3 wurde in der Vergangenheit im Zusammenhang mit TYPO3 meist von großen Firmen nachgefragt, die Zweifel an der Leistungsfähigkeit von MySQL hegten und lieber ihre bestehenden Oracle- oder SQL-Server-Installationen nutzen wollten. Im Laufe der Zeit stieg jedoch die Akzeptanz für MySQL auch in größeren Firmen, so dass sich trotz der immer wieder aufkeimenden Diskussionen über eine Abstraktionsschicht niemand fand, der diese auch implementiert hätte. Erst nach der TYPO3-Snowboard-Tour 2004 bot sich die Gelegenheit den DBAL zu realisieren.

Eine DBAL-Extension – das kann ja nicht so schwer sein

Aus Sicht von TYPO3 reicht Datenbank-Abstraktion im landläufigen Sinne – als Vereinheitlichung der Funktionen zum Senden von SQL-Anfragen – bei weitem nicht aus. Statt dieser „Zugriffs-Vereinheitlichung“ ist hier eine Kombination aus „SQL-Abstraktion“ und „Zugriffs-Vereinheitlichung“ notwendig. Dies ist nötig, da TYPO3 selbst Datenbanktabellen anlegt und diese auch jederzeit erweitern kann. Darüber hinaus ist Abwärtskompatibilität eine der Leitlinien des TYPO3-Projekts, mit der Folge, dass die Datenbankschemata weiterhin aus MySQL-Dumps erzeugt werden müssen – auch für Oracle und andere RDBMS. Dies alles führt natürlich zu völlig neuen Problemen, etwa bei der Behandlung unterschiedlicher Datentypen.

Im Laufe der Zeit hat Kasper Skårhøj alle Datenbankzugriffe im Kern von TYPO3 in der Klasse „t3lib_db“ konsolidiert. Dies bot die Basis für die Entwicklung der DBAL-Extension, die diese Klasse erweitert und Kernmethoden überschreibt. Ohne diese Extension kann „t3lib_db“ eher als Wrapper um die klassischen MySQL-Aufrufe gesehen werden. Da die Entwicklung der DBAL-Extension schon aufwändig genug sein würde, wurde nach einer geeigneten Abstraktions-Bibliothek gesucht. Als Kasper Skårhøj schließlich den Protoypen der Extension schrieb, setzte er auf PEAR DB und ADOdb. Dieser Prototyp wurde zur weiteren Entwicklung mit dem Ziel abgegeben, TYPO3 auf PostgreSQL lauffähig zu machen, um anschließend Oracle ins Visier zu nehmen.

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden