Aller au contenu

[Snippet #04 - PHP] EasyDump, affichage de variable amélioré

Icône dev

Hier, Bronco nous faisait découvrir Kint, un outil pour PHP de deboguage et d'affichage de variables assez poussé.

Je n'avais pas vraiment envie d'installer tout une librairie dans mes projets pour remplacer ma fonction de debug, mais cela m'a donné quelques idées d'améliorations.

EasyDump revoit donc complètement l'affichage de variable qu'on fait habituellement avec notre cher var_dump.

Fonctionnalités

Avantages et fonctionnalités

  • <pre> : l'affichage est automatiquement encadré d'un <pre> pour que vous n'ayez pas à le faire.
  • Affichage compact : réduit sensiblement l'espace pris comparé à var_dump()
  • Mise en forme : un peu de couleurs pour y retrouver ses petits (cette version s'inspire de mon très cher Earthsong, encore !)
  • Htmlentities : les variables qui contiennent du code html/xml ne seront pas interprétées, mais bien affichées textuellement
  • Noms courts : des noms de variables très courts sont disponibles pour faciliter la saisie (inspirés là encore de Kint dans sa version lite)
  • Multi dump : Comme pour var_dump() et Kint, vous pouvez passer plusieurs variables en même temps à EasyDump.

Axes d'amélioration

  • Nom des variables : contrairement à Kint (mais comme var_dump()), EasyDump n'est pas capable d'afficher le nom des variables que vous lui transmettez. C'est très compliqué à faire, mais serait bien utile lorsqu'on enchaine les dumps...
  • Paramétrer les couleurs : pour que chacun puisse personnaliser le bousin en fonction des besoins/envies.
  • Type "objects" : Les variables de type "objects" sont actuellement affichées via un var_dump(), et je ne sais pas trop comment faire autrement.

Utilisation

  1. Téléchargez le code ici (ou sur Github pour la dernière version) et placez le dans le dossier de votre projet.
  2. Importez le fichier d'EasyDump :

    <?php
    require_once( 'easydump.php');
    

    Puis appelez simplement les fonctions d'affichage :

    <?php
    $var1 = "toto";
    $var2 = array(
        'titi' => 'tonton',
        'tata' => 'toutou',
    );
    EasyDump::debug($var1, $var2, 756);
    
    //immediatly stop the script after the dump:
    EasyDump::debugExit($var1, $var2, 756);
    
  3. Pour simplifier la saisie, des noms de variables très courts sont possibles (si vous n'utilisez pas déjà ces noms dans votre code) :

    <?php
    d($var1, $var2, 756);    //same as EasyDump::debug()
    de($var1, $var2, 756);   //same as EasyDump::debugExit()
    

Et voilà le résultat :

Capture d'écran Easydump

Et maintenant ?

J'améliorerai au fil du temps en fonction de vos remarques et mes besoins. Peut-être même que je mettrai ça sur Github, un de ces 4...

Keep dumping & rock on, baby!

Edit 11/09/2013 à 14h : petite correction sur l'affichage des booléens (affichage de "true" et "false" au lieu de "1" ou rien du tout). Le lien de téléchargement a été mis à jour.

Edit 16/09/2013 à 15h : prise en compte des ressources (opendir, fopen et autres...) et améliorations mineures. Publication sur Github.