DDDBL - Definition Driven Database-Layer
Der DDDBL ist ein Datenbanklayer, der nicht nur die Arbeit mit verschiedenen Datenbanken an sich abstrahiert. Neben der Möglichkeit mit mehreren verschiedenen Datenbanken über ein und das selbe Interface zu arbeiten, abstrahiert der DDDBL gleichzeitig die Datenbankabfragen und deren Auswertungen.
Dadurch ergeben sich eine Reihe von Vorteilen, aber auch einige Einstiegsprobleme durch das neuartige Konzept. Aus diesem Grund gibt es eine umfassende Einleitung in das
Konzept hinter dem DDDBL.
Neues vom DDDBL
27.04.2014: DDDBL 2.0.1 released
Michael Fausten hat einen Fehler gefunden, der die inkorrekte Ausgabe der QueryException bewirkt. Der Fehler wurde behoben und die neue Version online gestellt. Hier könnt Sie hier oder aus dem SVN beziehen:
DDDBL 2.0.1 downloaden (8 KB)
19.04.2014: DDDBL 2 released
Es wurde in den letzten 4 Monaten nur ein Fehler gefunden, welcher die nicht korrekte Wiederverwendung von prepared Statements betraf. Dieser wurde behoben. Da ansonsten keine weiteren Fehler mehr gefunden werden konnten, ist der DDDBL 2 nun offiziell freigegeben!
Hier könnt ihr ihn direkt downloaden:
DDDBL 2 downloaden (8 KB)
13.12.2014: DDDBL 2 Beta 1 released
Zwei Fehler wurden während der Testphasen und -Einsätze gefunden und behoben. Dementsprechend gibt es nun die fehlerkorrigierte Beta:
DDDBL 2 Beta 1 downloaden (9 KB)
23.01.2014: DDDBL 2 Alpha released
Version 1 des DDDBLs ist mitttlerweile über 6 Jahre alt und es hat sich lange nichts mehr an dem Projekt getan. Tatsächlich waren vor einigen Jahren nur wenige Anpassungen nötig, um die Kompatibilität zu neuen PHP Versionen zu erhalten. Das Projekt selbst habe ich als fertig erachtet.
Daran hat sich auch nichts geändert. Dennoch habe ich den DDDBL 2 vollständig neu geschrieben. Die Architektur hat sich zu größerer Flexibilität hin geändert. Es ist nun sehr einfach den vollständigen Verarbeitungsverlauf der Datenabfragen zu beeinflußen - und das pro Query. Die neuen Freiheiten ermöglichen eingebundene Testfälle, Statistiken und vieles mehr. Wer diese Freiheiten nicht benötigt, kann alles lassen wie bisher. Die neue Version ist abwärtskompatibel. Allerdings habe ich die Handler CSV_EXPORT und MORE_THAN entfernt.
Es handelt sich um eine Alpha Version. Also bitte mit Vorsicht testen!
DDDBL 2 Alpha downloaden (9 KB)
02.02.2010: DDDBL 1.1 Beta released
Der DDDBL 1.1 enthält eine kleine Auswahl von Erweiterungen und Änderungen. Er ist vollständig Rückwärtskompatibel. Die Änderungen in Kürze:
Default-Verbindungen & statische Aufrufe
Bei der Definition der Datenbankverbindung kann nun der optionale Parameter
DEFAULT gesetzt werden. Der gültige Wert ist
"true".Der Parameter kann für genau
eine Datenbankverbindung verwendet werden.
Eine so gekennzeichnete Verbindung wird nun als Standard-Verbindung betrachtet. Bei der Instanzierung des DDDBL-Objektes kann nun auf den Alias verzichtet werden, wenn die Standard-Verbindung genutzt werden soll. Der Aufwand reduziert sich von:
$objDB = new DDDBL('ALIAS');
$objDB->get('QUERY-ALIAS');
auf:
$objDB = new DDDBL();
$objDB->get('QUERY-ALIAS');
Ebenso kann die get()-Methode nun statisch aufgerufen werden - dies setzt eine definierte Standard-Verbindung voraus:
DDDBL::get('QUERY-ALIAS');
Exceptions
Tritt ein Fehler beim ausführen einer Query auf, wird nun
keine PHP-Standard-Exception geworfen, sondern eine
DDDBLQueryException. Diese enthält neben der treiberspezifischen Fehlermeldung die
vollständige Definition des betroffenen Queries.
Explizite Datentyp-Bindung
Datenbanken unterstützen eine Reihe von Datentypen, welche zum Teil auch in der Kommunikation mit der Applikation berücksichtigt werden können oder müssen. Es ist nun möglich der Datenbank die Datentypen
NULL, Boolean, Integer und String explizit zu übermitteln. Ein übergebener Boolscher-Wert wird so in der Datenbank - falls unterstützt - auch als Boolean behandelt.
Der dazu nötige optionale Parameter heißt
BIND-DATA-TYPE und kann die Werte
true oder
false annehmen.
Der Parameter kann für Datenbankverbindungen oder Queries definiert werden. Die Definition bei einem Query überschreibt die globale Definition der Datenbankverbindung.
Andere Änderungen
- Der Klasse DDDBL wurde um eine Version-Annotation bereichert
- Kleine Schreibfehler in der Doku wurden behoben
- PHP 5.3 Anpassung: Ermitteln des Handlers eines Queries warf eine STRICT-Standard Warning
Download
Dies ist eine
Beta-Version. Trotz vieler Tests sollte diese als fehlerhaft betrachtet werden:
DDDBL 1.1 Beta downloaden (11,7 KiB)
31.03.2009: DDDBL 1.0 released
Da seit 2 Monaten keine weiteren Fehler gefunden wurden, wird der
DDDBL 1.0 freigegeben.
DDDBL Version 1.0 downloaden