Webentwickler kennen Firebug – DAS Tool um Javascript und HTML/CSS zu debuggen. Natürlich zähle ich auch dazu und das Tool hat mir bereits viele Male geholfen. Neu war mir allerdings FirePHP, eine Erweiterung für Firebug. Wie der Name bereits sagt dient es dem Debugging von php, vor allem im Hinblick auf die Ajax Entwicklung.
Kann man sonst mit einfachen print_r, vardump und die() einfach durch eine Anwendung gehen – was sicher nicht die professionelste Lösung ist – so hat man diese Möglichkeit bei Ajax nicht, da es sich dabei ja um eine reine Kommunikation zwischen Javascript und dem php Backend handelt. Mittels FirePHP hat man aber nun die Möglichkeit, Nachrichten an Firebug zu senden und diese anzeigen zu lassen.
Neben der Möglichkeit des Ajax Debuggings ist das Tool auch sehr hilfreich, ohne störende print_r’s, vardump’s und die()’s Debug-Meldungen zu erhalten und somit z.B. nicht das Layout der Seite zu zerstören.
So, nun aber genug der Einführung, schauen wir uns das System doch einfach mal an…
Unter addons.mozilla.org bekommt ihr die Erweiterung FirePHP. Wichtig ist, das ihr vorher Firebug installiert habt.
FirePHP erkennt ihr nun an dem blauen Käfer neben dem Firebug Symbol:
Bevor die Zend-Applikation läuft, also am besten in der public/index.php oder der application/bootstrap.php, einfach folgende Zeilen implementieren:
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('debug_logger', $logger);
Damit wird der FirePHP Logger initialisiert und ist ab sofort über die Zend_Registry überall in der Applikation verfügbar.
Nun könnt ihr an jeder beliebigen Stelle folgendes ausführen (das Array in der ersten Zeile dient natürlich nur dem Test, ihr braucht nur die 2. Zeile):
$var = array("Part_1"=>"Blabla", "Item2"=>array("Part_2"=>"Blabla"));
Zend_Registry::get('debug_logger')->log($var, Zend_Log::INFO);
Und schon bekommt ihr unter Firebug folgendes serviert:
Wenn ihr auf diese Log-Zeile klickt, so öffnet sich noch ein schöner Overlay in dem die Daten noch besser lesbar werden:
Ganz wichtig noch: Damit die Debug-Meldungen erscheinen, müsst ihr den Punkt “Netzwerk” aktiviert haben – sonst kommen die Meldungen bei Firebug nicht an:
Links:
firephp.org
Danke für den Hinweis mit der Aktivierung von “Netzwerk” im Firebug. Jetzt erscheinen endlich die Logmeldungen.