include in Klasse ?

Asterix-Ac

Erfahrenes Mitglied
Hi Community,

ich baue gerade an einem Projekt, in dem man zwischen mehreren Datenbanken-Typen auswählen kann. z.Z. habe ich aber nur MySQL und MSSQL zur Auswahl. Mein eigentliches Problem:
Da ja unterschiedliche DB-Typen eingestellt werden können, habe ich für jede DB eine eigene Datei angelegt. In den Dateien sind dann die DB-spezifischen Befehle jeweils in eine Funktion gefasst. In allen DB-Dateien gibt es die gleichen Funktionen und liefern auch das Gleiche zurück. Dann habe ich eine Klasse gebaut und wollte die jeweilige DB-Datei per include einbinden, damit die 'normalen' Funktionen zu Klassenmethoden werden. Doch das scheint nicht zu gehen.
Fehler : unexpected T_INCLUDE

Hat jemand dafür eine Alternative ?
Oder wie könnte man das lösen?

Danke schonmal im Vorraus.

Asterix :confused:
 
Hallo,
ich verstehe nicht ganz, warum du dir das Leben so schwer machst.
Wenn du mehrere DBMS bedienen willst, und einen solchen Aufwand mehrerer Include-Dateien betreibst, warum schreibst du nicht EINE Klasse, die so abstrakt ist, dass sie alle DBMS bedienen kann? (- das geht, ich weiß es, ich habe auch eine solche für MySQL, Postgre etc.)

So brauchst Du keine Includes und hast nur eine Klasse, die Du auch in Zukunft bei weiteren Projekten benutzen kannst. und immer weiter verbessern kannst.

Gruß
Create
 
Original geschrieben von AsterixAoH
Hat jemand dafür eine Alternative ?
Oder wie könnte man das lösen?
Also ich finde es ja durchaus löblich, dass Du die Klasse selbst programmieren willst, aber warum bei "sowas" das Rad neu erfinden? Die PEAR-DB-Klasse oder AdoDB sind sehr sehr gute Datenbank-Klassen, die ebenfalls mit verschiedenen Datenbank-Typen zusammenarbeiten können.
 
Hallo zusammen,

danke erstmal für Eure Hilfe. Ich denke, ich werde erstmal die '1-Klasse' Methode ausprobieren. Ich möchte ungerne erweiterte Software nachinstallieren wie PEAR-DB o.ä.

Asterix :)
 
Hi zusammen,

OK, ich habe mir das mal angeschaut und es ist wirklich brauchbar.
Doch ich habe ein generelles Problem mit dem include.
Ich habe mein ganzes Projekt darauf konzipiert, modular und OOP zu arbeiten. Hier ein kleines Snipplet, wie ich mir das vorgestellt habe:
PHP:
class ClassA
{
     var a;
     var b;
     var c = 4;
     include("functions.php");
     //
     // c'tor
     //
     function ClassA($var1,$var2) 
     {
          $this->a = $var1;
          $this->b = $var2;
     } //c'tor
} // ClassA

so wollte ich das machen. Doch das geht nicht, da PHP innerhalb der Klasse nur Var's oder Funktionen erwartet.
Ich wollte halt aus normalen Funktionen Klassenmethoden machen, in dem ich sie einfach aus einer Datei einbinde.
Wie kann man das ändern, dass es funktioniert?

Asterix :confused:
 
Hallo,

äh, ich denke das Include sollte VOR der Klasse passieren! Also inkluden dann Klasse schreiben, außerdem ist der "Ansatz falsch". Wenn du OOP willst, solltest du extends und nicht include nutzen.

Gruß
Create
 
Zurück