PHP - FirePHP

Par FlUxIuS 2008-07-16 { Catégorie : PHP }

Bugs ! Je vous vois maintenant

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.

 

L'installer

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');

 

Configuration

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();
?>

 

Phase de log

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);

 

Faire un log de tableau et objet

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);

 

Faire un log de Table (SQL)

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);

 

Logguer les exceptions

En développement Objet cela peut être intéressant :

try {
  throw new Exception('Test Exception');
} catch(Exception $e) {
  fb($e);
}

 

Conclusion : Sécurité 0

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 :)

 

Powered by SlashOn blog - © Sebastien D. (FlUxIuS)

Debian powered Server Creative Commons License W3c Validation
Cette création est mise à disposition sous un contrat Creative Commons