Wie die PHP Data Objects (PDO) die Datenbankprogrammierung mit PHP verändern werden

Daten(bank)abstraktion mit PHP 5.1
Kommentare

PHP 5.1, die erste Version von PHP mit neuen Leistungsmerkmalen seit der Veröffentlichung von PHP 5.0 im Juli 2004, bringt neben einer verbesserten virtuellen Maschine (VM) unter anderem auch eine Erweiterung mit sich, die die Programmierung von Datenbankanwendungen mit PHP verändern wird. Dieser Artikel stellt diese Erweiterung vor und gibt eine Einführung in die Programmierung mit den PHP Data Objects.

Soll eine PHP-Anwendung mit unterschiedlichen Datenbankmanagementsystemen verwendet werden können, so wird eine Abstraktion von der Datenbank benötigt. Diese bietet eine einheitliche Programmierschnittstelle für die Arbeit mit den spezifischen Programmierschnittstellen der unterschiedlichen Systeme (beispielsweise den MySQL- und PostgreSQL-Erweiterungen von PHP). Über diese Abstraktion der Programmierschnittstellen hinaus können aber auch Unterschiede in der Implementierung des SQL-Standards durch die Datenbankmanagementsysteme berücksichtigt und vor dem Programmierer verborgen werden. Der bislang vorherrschende Lösungsansatz für das Problem der Datenbankabstraktion bei der PHP-Programmierung ist die Implementierung einer Datenbankabstraktionsschicht in PHP.In den Zeiten von PHP 3 waren die Datenbankprogrammierschnittstellen der PHPLIB der De-facto-Standard für die datenbankunabhängige PHP-Programmierung. Mit PHP 4 kam eine wahre Flut von verschiedenen Bibliotheken und Lösungen für die Datenbankabstraktion heraus. Die populärsten Vertreter dürften die PEAR-Pakete DB und MDB sein. Während das PEAR-Paket DB nur die unterschiedliche Verwendung der PHP-Erweiterungen für die einzelnen Datenbankmanagementsysteme sowie einfache Unterschiede in der Implementierung des SQL-Standards wie die Limitierung der Anzahl von Ergebniszeilen oder die Arbeit mit Sequenzen wegabstrahiert, bietet das PEAR-Paket MDB, das eine Zusammenführung des PEAR-Pakets DB und dem Metabase-Paket darstellt, unter anderem auch eine Abstraktion der Datentypen an, was eine höhere Portabilität der PHP-Anwendung ermöglicht.Die Veröffentlichung von PHP 5 hat einen Schwung neuer Portierungen von Lösungen und Werkzeugen aus der Java-Welt nach PHP hervorgebracht. Eine dieser Lösungen ist Creole, eine Portierung der Java-Database-Connectivity-(JDBC-)Programmierschnittstellen nach PHP 5. Diese bietet eine komfortable, objektorientierte Abstraktion der PHP-Erweiterungen für die einzelnen Datenbankmanagementsysteme. In diesem Zusammenhang ist Propel, eine auf Creole aufbauende Lösung für das objektrelationale Mapping, also das Speichern von Objekten in einer relationalen Datenbank, zu erwähnen. Mit Propel ist es möglich, PHP-Applikationen zu entwickeln, die vollständig unabhängig von dem eingesetzten Datenbankmanagementsystem sind, da der Entwickler keine SQL-Anweisungen mehr formulieren muss. Diese werden vielmehr automatisch für das verwendete Datenbankmanagementsystem erzeugt.

Abb. 1: Die Klassen PDO und PDOStatement
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -