Classe de débogage avec mise en forme des données
Posté par admin dans Scripts PHP le 04-12-2009
Mots-clefs :PHP, Scripts1
La classe de débogage présentée dans cet article va vous permettre de connaître sur la structure d’un tableau, d’un objet ou d’une variable.
J’utilise très souvent cette classe pour afficher si la structure des objets complexes que je mets en place est correcte. Par exemple pour le débogage d’une session, ou un objet complexe.
La classe de débogage est relativement simple à comprendre. Voici le code :
class Debug { public static function dump($var, $label=null, $echo=true) { $label = ($label===null) ? '' : rtrim($label) . ' '; ob_start(); var_dump($var); $output = ob_get_clean(); $output = preg_replace("/\]\=\>\n(\s+)/m", "] => ", $output); if(!extension_loaded('xdebug')) { $output = htmlspecialchars($output, ENT_QUOTES); } $output = " <pre>" . $label . $output . "<\/pre>"; if ($echo) { echo($output); } return $output; } }
Il n’y a donc qu’une seule méthode static avec trois paramètres dont deux sont optionnels.
- $var : ce paramètre obligatoire qui contient la valeur à débugger. Se peut être une valeur string ou numérique, un tableau, un objet.
- $label : ce paramètre optionnel permet de mettre un titre au débogage. Afin de facilité la lecture.
- $echo : ce paramètre optionnel permet d’afficher directement la structure.
Par défaut, retourne la mise en forme afin de pouvoir, par exemple, la stocker pour une utilisation ultérieure.
Voici un exemple d’utilisation simple avec un tableau de données :
$array = array('param 1' => 'valeur 1', 'array' => array('param 2' => 'valeur 2')); Debug::dump($array, 'Affichage de la structure du tableau : ');
Ce qui affiche ceci :
Affichage de la structure du tableau : array(2) { ["param 1"] => string(8) "valeur 1" ["array"] => array(1) { ["param 2"] => string(8) "valeur 2" } }
Vous savez donc comment est structuré votre tableau, le nombre de lignes qu’il y a dans le tableau « array(2) », le nombre de caractères que contient une valeur « string(8) », etc…



Un
var_dump()quoi !