Entwicklung & Design

PHP-Komponenten für Enterprise-Anwendungen: eZ Components

Seite 3 / 6

Freie Wahl

Zwei Komponenten sorgen für die Datenbank-Abstraktion und stellen drei Abstraktionsebenen zur Verfügung. Auf unterster Ebene ist die Komponente „Database“ für eine weitere API-Vereinheitlichung der PHP-5-eigenen Abstraktion namens PDO zuständig. Hier werden zum Beispiel die von PDO doch recht wirr geworfenen Exceptions vereinheitlicht und ein Singleton-Mechanismus angeboten. Darüber hinaus bietet die Database-Komponente einen SQL-Abstraktionsmechanismus, mit dem sich auf Basis von PHP-Objekten Datenbankabfragen unabhängig von der zu Grunde liegenden Datenbank erstellen lassen. Eine Migration von einem Datenbanksystem auf ein anderes wird damit leicht und transparent möglich. Auch erweiterte Features, wie die aus MySQL bekannte LIMIT-Klausel, werden von der Abstraktionsschicht für alle unterstützten Datenbanken unter einer einheitlichen API zur Verfügung gestellt. Zurzeit unterstützt die Database-Komponente MySQL, SQLite, PostgreSQL und Oracle – die Unterstützung des MS-SQL-Servers ist geplant.

Für die dritte Abstraktionsschicht ist die Komponente „PersistentObject“ verantwortlich. Sie bietet nach dem Vorbild von Java Hibernate einen Mechanismus zum Objekt-Relational-Mapping, der das Ablegen von PHP-Objekten in einer relationalen Datenbank erlaubt. Objekte können transparent aus der Datenbank geladen, manipuliert, gespeichert und gelöscht werden. Außerdem kümmert sich „PersistentObject“ um die zwischen den Objekten bestehenden Beziehungen. Im Gegensatz zu manch anderer Implementierung im PHP-Umfeld erwartet „PersistentObject“ nicht, dass die Klasse eines zu speichernden PHP-Objekts eine bestimmte Basis-Klasse erweitert oder ein bestimmtes Interface implementiert. Somit wird ermöglicht, die Objekt-Struktur der zu entwickelnden Applikation völlig frei zu gestalten. „PersistentObject“ greift auf die SQL-Abstraktion von „Database“ zurück und ist somit ebenfalls völlig unabhängig vom verwendeten Datenbanksystem. Zusätzlich zu den eigentlichen Abstraktionskomponenten ermöglicht das Paket „DatabaseSchema“, die Struktur einer Datenbank unabhängig vom verwendeten Datenbanksystem zu speichern und aus diesem Schema die Datenbankstruktur in einem der oben genannten Systeme zu erzeugen. Ein von einer Datenbank unabhängiges Setup einer Anwendung ist somit ein Kinderspiel. Auch das Abspeichern von Unterschieden zwischen verschiedenen Versionen einer Datenbankstruktur sowie das Einspielen dieser Änderungen sind möglich.

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

Schreib den ersten Kommentar!

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

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

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

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

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung