ADBo mit PHP

M

macddict

Aktives Mitglied
Thread Starter
Dabei seit
20.02.2005
Beiträge
209
Reaktionspunkte
5
Habe ein Frage:

Welchen Sinn hat die Verwendung eines Datenbankabstraktionsklasse wie z.B. adodb in php bei kleineren Projekten?

Baue ein kleines CMS und frage mich ob ich sowas wohl einsetzen sollte...das CMS soll definitiv nur auf MySQL laufen.
 
wenn es nur auf mysql laufen soll und du dir sowieso dann deine eigene DB-Abstraktionsschicht baust, brauchst kein adodb.
 
warum brauche ich eigentlich so eine schicht..ich meine codemäßig es gleich ob ich jetzt einfach "$query = "123";$result=mysql_query($query);" schreibe oder "$db->connect();$db->query($query)" schreibe...
 
aus dem einfachen grund, dass wenn du z.B. Änderungen an den Tabellenstrukturen vornehmens willst (z.b. hinzufügen eines Attributs) dass du nicht alle deine Skripte nach Querys durchsuchen musst, die auf die entsprechende Tabelle zugreifen. Du speicherst einfach nur noch Objekte in DB und musst für das Speichern und Zugreifen immer nur Code an einer Stelle ändern...wenn du natürlich nie was ändern wilslt (was wohl eher nicht vorkommt) dann kannst es auch im Code schreiben. nachdem normalerweise jedoch 80% der Kosten bzw. des Aufwands aufs Maintaining von Systemen entfällt, lohnt es sich den Code wartbar zu schreiben :)

achso du würdest dann ja nicht an das $db Objekt die Query übergeben, sondern ein Objekt erzeugen, dass deine Objekte speichern kann. In diesem sind dann die Querys gekapselt. Abgesehen davon, können damit Verbindungsinformationen viel leichter zentral abgelegt werden.
 
Zuletzt bearbeitet:
danke für die erklärung. du meinst also statt aus einen feld was auszulesen würdest du dann nicht "SELECT feld1 FROM tabelle...$foo = resultrow["feld1"];" mit entsprechendem query schreiben, sondern "$foo->getFeld()" als objekt, oder ? (bitte syntax nicht ernstnehmen :D)
 
also dazu gibts ja nen haufen literatur...

prinzipiell würde ich das folgendermaßen gestalten:
du machst dir eine schicht die mit der datenbank kommunziert und für jedes deiner zu speichernden objekte legst du objekte an, die das entsprechende objekt speichern können bzw. aus der DB erzeugen können...

also z.B. $a = new ObjektX(5) würde dann ein ObjektX dir erzeugen, dass z.B. die ID 5 hat. der Konstruktor dieses Objektes würde sich dann mit der DB verbinden und das entsprechende aus der DB lesen.
du operierst dann nur noch auf diesem Objekt, also $a->gibAttributY()

so meine ich das, verstanden ?
 
viele dank für die hinweise. bin jetzt grad dabei alles auf Klassen umzustricken, d.h. für jede Haupttabelle eine Klasse in PHP.

Habe mich vor OO bisher gescheut, aber sehe jetzt das es die Verwaltung von DBs DEUTLICH einfacher macht. Auf jeden Fall kann ich mir einiges an Schreibarbeit sparen :D
 
Zurück
Oben Unten