wobei dann natürlich immer auch wenn du die klasse in 10 jahren benutzt, die konstanten zur datenbankverbindung gesetzt sein müssen.
ich empfehle also, sie bei initialisierung der klasse zu übergeben. sprich also die klasse user_del so zu schreiben: PHP-Code:
|
@feuervogel: thx für den tip, werds dann doch so rum machen, wie du vorgeschlagen hast.
bin auch erst bei klassen eingestiegen in das thema |
@feuervogel,
ist das eine vertrettbare Lösung, wenn man die Daten für die Eltern-Classe nicht durch alle Kind-Classen schleiffen will? PHP-Code:
PHP-Code:
|
ja, so könnte man es machen. aber da ich immer noch was finde: das aufrufen von klassen kostet zeit. sehr viel zeit. daher würde ich nur eine klasse einmal aufrufen wollen:)
zum thema zeit: http://www.webmasterstop.com/tutoria...-PHP-OOP.shtml wisst ihr, mir ist das im prinzip egal, wie ihr die klassen gestaltet, aber die erfahrung zeigt, dass ne klasse im prinzip wie so ne mühle ist: es kommt was rein und verändert wieder raus. dabei kann man grob mahlen, man kann fein mahlen, und man kann getreide, aber auch kaffee mahlen. woher der kaffee kommt, ist der mühle doch egal, oder? ob aus ner dose oder ner tüte. so solltet ihr auch klassen betrachten. eine klasse ist auf keinen fall an globale variablen gebunden oder an irgendwas außerhalb von ihr. also alles was in der klasse von außen kommt, wird übergeben. |
p.s.: was du machst: du nimmst deine klasse db und verbindest das script mit der db. diese verindungskennung übergibst du nun der tochter klasse.
warum übergibst du nicht die instanz der db klasse und verbindest in der tochter klasse? du kannst sie ja ein mal in den konstruktor schreiben, schon "schleifst" du sie nicht mehr mit. |
Zitat:
Wie ist es wenn z.B. noch eine dritte o. vierte Classe existiert? |
auch wenn ich stark nen zacken in der krone habe (scheiß fußball:)
PHP-Code:
bei 3 oder 4 klassen werden die jeweiligen instanzen halt übergeben. ich schreibe mal die tage eine parser klasse...dort kann gewählt werden zwischen bbcode-, spiegel.de- und LaTeX-parsing... |
Hi feuervogel,
so richtig zufrieden bin ich damit auch nicht. Wenn ich das so mache dann brauche ich ja das "... extends datenbank" nicht mehr. Da ja die ganze Classe in dem "$db" steckt. Habe noch was rausgefunden die ganzen var ... aus der "datenbank" (Eltern-Classe) stehen in den Kind-Classen überhaupt nicht zur Verfügung. Gibt es denn nicht irgend eine Möglichkeit das das $this->conn (Verbindungs-Kennung) zur Verfügung steht wenn man this->query(...) aus einer Kind-Classe aufruft. --------- Wegen dem zusammenlegen ich brauche die "user_del" nur in einer spezielen Seite die "datenbank" in allen. --------- Hatte mir gestern noch die eine Seite mit dem Diagramm angesehen. Konnte zwar nichts lesen (Kann kein englisch) aber wenn ich das Diagramm richtig deute ist es doch ein Fehler überhaupt Classen zu verwenden. Dann wenns sein muss nur eine Funktion? Aber wo man hinschaut werden Classen geschreiben und verwendet? -------- Wenn du willst kann ich dir ja auch mal die Classen komplett per E-Mail zusenden. |
Zitat:
PHP-Code:
|
Hi meikel,
mit der Funkt. "function conn_stand()" hatte ich das gelösst damit "$this->conn" in der Funkt. "db_query" da ist, wenn ich diese Funkt. aus der Kindklasse heraus aufrufe. Ohne gab es immer einen "Query-Fehler Nr. 0". PHP-Code:
PHP-Code:
Nachtrag: Was auch wichtig ist, die Kindklasse(n) sind nicht in allen Seiten enthalten nur die Elternklasse "db_class.php" ist in allen Seiten per require eingebunden. Wenn ich das so mache wie in deinem Beispiel, muss ich ja die Verbindungsdaten (Username, PW, ...) auch über jede Kindklasse mitgeben. Was den Fehler verursaht ist ja nur das fehlende "$this->conn" wenn die Funktionen in denen "$this->conn" verlangt wird, aus der / den Kindklassen heraus aufgerufen wird. Vorschläge, Verbesserungen nehme ich dankend an. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:43:57 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.