Mailinglisten-Archive |
Lutz Zetzsche wrote: > Hi Yannik, > > Am Mittwoch, 25. Oktober 2006 18:28 schrieb Yannik Hampe: >> ich beschäftige mich gerade etwas mit PDO. >> Ich wollte die execute-Funktion von PDOStatement nun etwas erweitern >> und habe versucht einfach eine Klasse von PDOStatement abzuleiten, >> die dann execute überläd. >> Nur leider gibt PDO::prepare immer ein PDOStatement zurück und nicht >> meine abgeleitete Klasse. Gibt es eine Möglichkeit, wie ich execute >> trotzdem überladen kann? > > vorweg möchte ich sagen, daß ich das Überladen in PHP5 noch nicht selbst > verwendet habe. Alles was ich darüber hinsichtlich PHP weiß, habe ich > mir im Handbuch angelesen. > > Ich vermute, daß das, was Du möchtest, nicht geht. Im Online-Handbuch > steht: > > "Both method calls and member accesses can be overloaded via the __call, > __get and __set methods. These methods will only be triggered when your > object or inherited object doesn't contain the member or method you're > trying to access." > (Quelle: http://www.php.net/manual/en/language.oop5.overloading.php) Das meine ich nicht... > > Da PDOStatement::execute schon existiert, ist im PHP-Sinne ein Überladen > mit __call also nicht möglich. > > Oder meinst Du Überladen so, wie es in Java gemeint ist? Oder meinst Du > gar Überschreiben, wie es auch in Java verwendet wird? Ja, genau... Überladen wie in Java... Nur kurz, damit ich jetzt nicht gerade Überladen und Überschreiben durcheinander bekomme: Ich will schon noch in der Lage seine mit parent::altefunktion() die alte Funktion aufzurufen. > > Vielleicht kannst Du mal den Code zeigen, sowohl die Erweiterung als > auch den Aufruf. :-) Klar doch. Simples Beispiel: class yPDOStatement extends PDOStatement { public function execute($ar) { //Hier Zeugs machen (logging, debugging, pre-processing und sowas) parent::execute($ar); //dann die alte execute-Funktion aufrufen. } } Das würde schon alles machen, was ich will, nur dass PDO::prepare mir ein PDOStatement und kein yPDOStatement zurückgibt. > > > Viele Grüße > Lutz Yannik
php::bar PHP Wiki - Listenarchive