Mailinglisten-Archive |
Olaf Gleba wrote: > 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 ? --> debug_backtrace() (> 4.3) oder debug_print_backtrace() (> 5.cvs) könnte dir vielleicht helfen -- Sebastian Mendel (www.sebastianmendel.de) *www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive