Description de FirePHP, installation et conclusion de cette extension.
Avoir un outil tel que Firebug, c'est avoir le privilège de modifier le code sources de l'affichage mais surtout corriger quelques bugs liés au Javascript.
Cet outil est très puissant. Il permet de diagnostiquer ses pages et de connaître directement la source du problème via Firebug sur Firefox. Grâce à cela, nous pouvons corriger les formulaires, retoucher à la sources javascript ou même changer toutes la sources HTML d'un site.
FirePHP quant à lui est une extension de Firebug qui permet d'envoyer en entête une réponse X-FirePHP-Data et ainsi vous donner la possibilitée d'observer les valeurs envoyées par certains modules dans les logs.
Avant tout récupérer l'extension Firefox : Firebug en cliquant ici
Ensuite téléchargez FirePHP et décompressez le dans le répertoire qui contient votre projet web. Et pour finir l'installation, nous devrons l'inclure dans le layout principal du site (de préférence).
require('FirePHPCore/fb.php');
Etant donné que FirePHP envoie les données en entête via la fonction header() de PHP, il sera préférable d'activier le buffer de sortie :
<?php // A placer tout au début ob_start(); ini_set('output_buffering', 1); /* Pour cette config, vous pouvez directement modifier votre php.ini à la place ou placer cela dans votre virtualhost apache */ //.. Votre code ob_end_flush(); ?>
Pour un petit test, on peut déjà commencer avec l'envoi d'un Hello World :
fb('Hello World');
Style de messages log :
fb('Log message' ,FirePHP::LOG); fb('Info message' ,FirePHP::INFO); fb('Warn message' ,FirePHP::WARN); fb('Error message',FirePHP::ERROR);
fb($_SERVER, FirePHP::LOG);
Il est tout de même recommandé de donner un nom à ses logs afin de les repèrer :
fb($_SERVER, 'Variables Serveur', FirePHP::LOG);
fb(array('2 SQL queries took 0.06 seconds', /* The summary line */ array( /* Contains each table row */ 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);
En développement Objet cela peut être intéressant :
try { throw new Exception('Test Exception'); } catch(Exception $e) { fb($e); }
Pour un environnement de développement seulement, FirePHP peut s'avérer très utile lorsque le développeur est loin de ses outils et n'a que Firefox pour voir les pages de sont serveur. Mais sachant que tout est envoyé en header, les informations sont à la portée de tous et donc au niveau sécurité, lorsque nous loggons les tables contenant des informations supposées être secrètes, nous remarquons que ceci est à utiliser avec une énorme précaution.
Personnellement, je pense que ceci n'est qu'un gadget et connaissant le test unitaire avec PHPUnit, je ne préconiserais que ce dernier. Toutefois, je recommande l'utilisation de Firebug qui est un outil qui est fort bien utile.
Sources :
Documentation : http://www.firephp.org/Wiki/Main/QuickStart
Documentation PHPunit : Vous pourrez retrouver l'essentiel sur les Test Unitaire avec PHPUnit dans le magazine Programmez de ce mois-ci, par Julien Pauli de la société Anaska :)
Cette création est mise à disposition sous un contrat Creative Commons