Mailinglisten-Archive |
Hi, ich beschäftige mich gerade mit den diversen PHP-Datenbankabstraktionsschichten, also z.B. PEAR DB, PEAR MDB, PEAR MDB2 und ADOdb. Ich frage mich dabei, welchen realen Wert solche Abstraktionsschichten eigentlich wirklich haben. Mit der Auswahl einer Datenbankabstraktionsschicht mache ich mich ja vielleicht theoretisch datenbankunabhängig, gleichzeitig binde ich mich doch aber durch diese Auswahl auch mindestens genauso stark. Und ist eine Datenbank in der Regel in Sachen Zukunftssicherheit nicht ein verläßlicher Faktor als solch eine Abstraktionsschicht - wenn man einmal von Anwendungen absieht, die tatsächlich auf verschiedenen Datenbanksystemen laufen (können) müssen? Hinzukommt für mich die entscheidende Frage: Wird der Einsatz einer Datenbankabstraktionsschicht nicht von vielen Programmierern oft dadurch wertlos gemacht, daß in der PHP-Programmierung SQL-Befehle hart kodiert werden, am Besten noch mit datenbankspezifischen Funktionen etc.? Welchen Wert hat die Abstraktionsschicht noch, wenn sie zwar die datenbankspezifischen PHP-Funktionen kapselt, dann aber nur datenbankspezifische SQL-Befehle durchschleust? Wenn also eine Datenbankabstraktionsschicht in Frage käme, dann müßte diese doch einen "SQL Query Builder" (wie z.B. PEAR DB_DataObject) haben und nur der dürfte verwendet werden. Dann wiederum stellt sich die Frage, wieweit ich mit diesem "Query Builder" dann bei komplizierten, verschachtelten Datenbankabfragen über mehrere Tabellen komme... Kommt man in der Praxis vielleicht dadurch am weitesten, daß man sich selbst eine kleine, datenbankabhängige, austauschbare Zwischenschicht ("Wrapper") baut, die die datenbankspezifischen nativen PHP-Funktionen kapselt und wo man auch die SQL-Befehle zusammenbastelt? Gedanken über Gedanken, Fragen über Fragen. :-))) Kurze Frage also: Wie seht Ihr das, und wie handhabt Ihr das bei Euren PHP-Anwendungen? Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive