Dernier post

Convertir les caractère accentués en caractères non accentués en P

Pour le formatage des URL, il faut penser à transformer les caractères accentués en non accentués. La fonction suivante va donc vous permettre de supprimer les accents d’une chaine de caractère. function stripAccents($str, $encoding =...

Lire la suite

Classe de débogage avec mise en forme des données

Posté par admin dans Scripts PHP le 04-12-2009

Mots-clefs :,

1

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…

http://www.wikio.fr

Commentaires (1)

Un var_dump() quoi ! :)

Commentaires