Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Datenbankabstraktion mit PHP - was muss ich beachten?

Layoutprobleme? - Styleswitcher!

Antwort
 
Themen-Optionen
Alt 26.04.2008, 11:37 Nach oben    #1
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard Datenbankabstraktion mit PHP - was muss ich beachten?

Hi,
nachdem ich das Errorhandling fertig gestellt habe, möchte ich mich nun der Datenbank zuwenden.

Mein Ziel ist es, das ich am Ende verschiede, ich nenn sie mal adapter, zu verschiedenen DBMS habe. Allerdings sollen diese alle über eine Gemeinsame schnittstelle genutzt werden.

Nun, jetzt steh ich vor dem Problem, wie gehe ich das an.
Meine Überlegung wäre, das ich eine Instanz habe, die Konfiguriert werden kann und anhand dieser entscheidet welchen Connector sie verwendet, welche klasse das SQL generiert.
Ist das vom Grundsatz erstmal richtig?!

Gibt es Designpattern die ich mir zu diesem Thema anschauen kann?

grüße
Gabriel
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.04.2008, 12:17 Nach oben    #2
mepeisen
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 353
Standard

Schau dir doch mal beispielsweise an, wie es das Zend-Framework gelöst hat.
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.04.2008, 14:47 Nach oben    #3
dr.e.
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 112
Standard

Hallo,

im Adventure PHP Framework wird das über einen ConnectionManager gelöst, der dir je nach Parameter eine Instanz einer definierten Schnittstelle zurück gibt. Die Implementierung eines Abstraktionslayers muss von einer Basis-Klasse ableiten und die Interface-Methoden implementieren. So wird sichergestellt, dass eine darüberliegende Schicht sich (nahezu) nicht um die DB-Spezifika kümmern muss.

Code gibts unter http://adventure-php-framework.org/f...-php4_php5.zip im Ordner apps/core/database und die Beschreibung des ConnectionManagers gibts unter http://adventure-php-framework.org/S...nectionManager
__________________
Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a look at http://www.adventure-php-framework.org!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.04.2008, 14:51 Nach oben    #4
ex³
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 267
Standard

Ich hab mir schon gleiches beim ErrorHandling Thread gedacht.
Wenn du es unbedingt selbst machen willst, zwecks Erfahrung, Lerneffekt, etc. dann ist es nicht verkehrt sowas selbst zu bauen. Andernfalls würde ich dir auch zum Zend Framework raten.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.04.2008, 17:38 Nach oben    #5
Basti
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 745
Standard

Hallo Gabriel.

Ich benutze eine Mischung aus einem eigenen ORM und DAOs. Die DAOs kannst du über eine Fabrik bauen lassen, die weiß, welches DB-System du benutzt. Ich meine, im eigentlichen Pattern wird eine abstrakte Fabrik benutzt und der Client weiß, welche Fabrik ihm die DAOs bauen soll. Es macht in meinen Augen aber mehr Sinn, die Fabrik entsprechend einzustellen und die Clients (in meinem Fall dann Objekte, die je eine bestimmte Klasse von DataObjects verwaltet) im Unwissen zu lassen.

Für mich hat das vor allem den Vorteil, dass ich alle MySQL-Queries zusammen habe. Der Aspekt der Abstraktion ist eher ein Nebenprodukt, denn ich hab kein Interesse, mein System auf andere DB-Systeme zu portieren.

Vielleicht gar keine schlechte Idee, da nochmal hinzuschauen, ob eine DB-Abstraktion wirklich notwendig ist.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.04.2008, 17:46 Nach oben    #6
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard

Zitat:
Zitat von Basti Beitrag anzeigen
, denn ich hab kein Interesse, mein System auf andere DB-Systeme zu portieren.

Vielleicht gar keine schlechte Idee, da nochmal hinzuschauen, ob eine DB-Abstraktion wirklich notwendig ist.

Basti
Mhmm, danke...
das ist eigentlich ein sehr guter einwand. Ich denke nicht das das system was hierbei rauskommen soll irgendwann mal von jemanden anderes genutzt wird...da hast du recht.

Ok danke für die Tipps mit den Pattern, da kann ich in meinem Buch (PHP Design Pattern) noch einmal darüber lesen...

Zitat:
Wenn du es unbedingt selbst machen willst, zwecks Erfahrung, Lerneffekt, etc. dann ist es nicht verkehrt sowas selbst zu bauen. Andernfalls würde ich dir auch zum Zend Framework raten.
ZendFramework kenn ich schon, hab auch schon damit gearbeitet. Nur möchte ich, bevor ich was fertiges nutze, verstanden haben, wie das alles funktioniert...
Macht einem am ende leichter das ganze anzupassen und generell damit zu arbeiten!
__________________

Geändert von kampfgnom (26.04.2008 um 17:46 Uhr). Grund: BB-Tag geändert
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

« InternetExplorer 6 Problem | Frage zum Tutorial: BBCode-Parser »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP 5.2 Kompilierung schlägt fehl Byrel Tools, Server, Betriebssysteme 0 03.11.2006 22:09
[Rezension] PHP 5 Kochbuch Artemis Literatur 2 07.09.2006 19:15
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:00 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.6.7, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44