Mailinglisten-Archive |
Hallo, irgendwas scheine ich da noch nicht zu begreifen. Ich versuche gerade, das Error Handling in einer kleinen eigenen App ein wenig übersichtlicher, bzw. steuerbarer zu machen. Ich übergebe dem Callback als Objektreferenz die smError Klasse, die in einer eigenen Datei liegt und die über eine core Datei (von der alle Klassen erweitert werden) instanziert wird und somit als "$this" in z.B der Datenbank Klasse zur Verfügung steht. PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this->smError,'pearError')); Die genutzte Funktion in der error.class.php sieht folgendermaßen aus: function pearError($err_obj) { if (DEBUG == true) { //DEBUG wird in der Klasse übergreifend definiert print (" Debug: ".$err_obj->getDebugInfo()."<br /> Error: ".$err_obj->getMessage()."<br /> ... etc. ... Klasse: ".__CLASS__."<br /> ... etc. ... } else { print 'Hier die Userinfo ohne Debug'; } die; } Alles wunderbar, so lange ich das Error Objekt abfrage ($err_obj). Die magischen Funktionen allerdings geben mir natürlich nicht das, was ich eigentlich haben will... Ich will ja nicht den Funktionsnamen, die betroffene z.B Klassennamen der error.class.php, sondern den, in denen der Fehler aufgetreten ist. Das oben gepostete kann also nicht funktionieren ;) Wie komme ich innerhalb der Funktion (pearError) an die relevanten Ausgaben des Fehler Returns ? Als Gegenstück zum direkten Aufruf in der entsprechenden Funktion der DB Klasse, das mir ja genau das gewünschte liefert... if(DB::isError($this->db)) { print ("Debug: ".$this->db->getDebugInfo()."<br /> ... etc. ... Möglich oder muss ich anders rangehen ? gruss Olaf -- Olaf Gleba | creatics media&systems http://www.creatics.de | mailto:og at creatics.de
php::bar PHP Wiki - Listenarchive