Eèn van de hekelpunten tijdens het ontwikkelen van PHP applicaties is vaak het debuggen. Dit is zo doordat het script wordt uitgevoerd en je enkel de output op je scherm te zien krijgt. Zeker voor de beginnende PHP programmeurs is dit vaak een groot vraagteken hoe je hier het best aan kan beginnen.
Vroeger waren de beste methodes voor het debuggen waardes op het scherm tonen met echo en print_r. Echo voor de gewone variables en print_r voor de inhoud van arrays te tonen.
Wat ik nu ga laten zien is een nieuwe mannier van debuggen waardoor de debug info niet in je layout van je website wordt geprint maar in een apart venster namelijk het console venster van Firebug.
Wat heb je nodig?
- Mozilla Firefox browser
- Firebug add-on in Firefox
- FirePHP add-on in Firefox
- FirePHP PHP class
Installeer de twee add-ons in Firefox, vervolgens open je de FirePHP.tar.gz (deze kan je open met bijvoorbeeld winrar). Ga naar de map /lib/FirePHPCore waar je de twee bestanden vindt die je nodig hebt. Kopieër het bestand fb.php en FirePHP.class.php naar je website map.
Een kleine voorkennis van Firebug is ook altijd goed meegenomen.
Aan de slag met FirePHP
Om FirePHP te kunnen gebruiken in je script include je het fb.php bestand in je script.
0 | require('includes/fb.php'); |
Het include path is natuurlijk afhankelijk van waar je het bestand fb.php hebt staan.
Hieronder heb je een paar voorbeelden van wat voor logs je kan maken in Firebug.
0 1 2 3 4 5 6 7 8 9 10 11 12 | fb('Hello World'); /* Defaults to FirePHP::LOG */ fb('Log message' ,FirePHP::LOG);fb('Info message' ,FirePHP::INFO);fb('Warn message' ,FirePHP::WARN);fb('Error message',FirePHP::ERROR); fb('Message with label','Label',FirePHP::LOG); fb(array('key1'=>'val1', 'key2'=>array(array('v1','v2'),'v3')), 'TestArray',FirePHP::LOG); function test($Arg1) { throw new Exception('Test Exception');}try { test(array('Hello'=>'World'));} catch(Exception $e) { /* Log exception including stack trace & variables */ fb($e);} fb(array('2 SQL queries took 0.06 seconds',array( array('SQL Statement','Time','Result'), array('SELECT * FROM Foo','0.02',array('row1','row2')), array('SELECT * FROM Bar','0.04',array('row1','row2')) )),FirePHP::TABLE); /* Will show only in "Server" tab for the request */fb(apache_request_headers(), 'RequestHeaders',FirePHP::DUMP); |
Op de volgende afbeelding zie je het resultaat in Firebug van de logs die we gemaakt hebben in het bovenstaade script.

Voordelen
Je zal waarschijnlijk ook wel begrijpen dat deze mannier van debuggen veel aangenamer is dan het echoën en printen van variablen. Om nog wat meer te overtuigen zal ik nog enkel voordelen geven van deze mannier van debuggen.
- Doordat alle debug informatie in een apart scherm getoond wordt is het veel overzichtelijker.
- Je zal geen last meer hebben van echo’s en print’s die je layout naar haaien helpen.
- Moest je een debugregel vergeten uit je code te halen zijn bij het online zetten van je website dan zal de gewone bezoeker hier ook niets van zien.
- Je kan in je PHP config bestand bijvoorbeeld een boolean variable aanmaken “debug”. Als deze op true staat dan zal er debug informatie getoond worden, staat deze echter op false dan wordt er geen debug info getoond. Dit is gemakkelijk te maken door een if functie met als voorwaarde $debug rond de code in de fb functie in het fb.php bestand te zetten. Wanneer dat je dan je website online zet dan hoef je alleen maar de debug variable in je config file op false te zetten om alle debug lijnen uit te schakelen.