Moin!
du greifst schon richtig mittels "parent" auf die Methode der Basisklasse zu.
Ja? Würde ich genau _nicht_ so sehen.
Sinn einer "extends"-Klassenerweiterung ist ja, dass die neue Klasse alle Methoden der alten Klasse erbt und benutzen kann. Ein Aufruf der Methode der Elternklasse ist also in 99% aller Fälle überflüssig, weil man dieselbe Methode auch in der eigenen Klasse hat. Oder sie dort so verändert hat, wie man sie gerade brauchte.
Außerdem ist der statische Aufruf parent::methode() an ganz andere Bedingungen geknüpft. Statische Aufrufe sind vergleichbar mit dem simplen Aufrufen einer definierten Funktion - nur dass die Funktion eben in einer Klasse steht. Man hat aber keinerlei Klassenvariablen zur Verfügung ($this->variable), der Konstruktor wird nicht aufgerufen, und es gibt eben keine mehreren Instanzen.
Insofern halte ich diesen statischen Aufruf an dieser Stelle für falsch - und auch generell nicht für sehr glücklich, wenn man mit Instanzen arbeitet.
Also statt dem statischen Aufruf parent:: lieber $this->methode() nehmen. Weil diese Methode tatsächlich auch in der erweiterten Klasse existiert.
Die aktuelle Version der Datenbankklasse sehe ich etwas kritisch. Man sollte vielleicht im Konstruktor (dem man bei der Instanziierung der Klasse Parameter mitgeben kann) die Definition der Passworte und das Kontakten der DB regeln - zumindest aber sollte es für sowas eine eigene Methode geben. Der Direktzugriff auf Eigenschaften einer Klasse wird von den Gurus als böse angesehen, man soll get/set-Methoden für sowas verwenden, weil man dadurch eine Kapselung und definierte Schnittstelle erreicht, die unabhängig von der internen Datenspeicherung ist.
In Bezug auf [pref:t=77839&m=450125]:
Den Konstruktor der übergeordneten Klasse muß man im Konstruktor der erbenden Klasse manuell selbst aufrufen.
- Sven Rautenberg