CwsDump : Alternative aux fonctions var_dump et print_r

Publié le 28 septembre 2013 par Cr@zy @crazyws

CwsDump est une alternative aux célèbres fonctions PHP var_dump() et print_r(). Cette classe vous permettra d'avoir une vue plus simplifiée et structurée d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

Je me suis inspiré de ce que nous affiche Xdebug lorsque l'on fait appel à la fonction var_dump(). Mais vous n'aurez pas besoin de Xdebug pour faire fonctionner cette classe!

Deux fichiers sont importer, la classe class.cws.dump.php et le fichier de configuration cws.dump.ini dont voici sa structure :

;=====================================================================================
;   This file is an integral part of the CwsDump class.
;=====================================================================================

[cwsdump_general]
cwsdump_max_depth = 8 ; Controls how many nested levels of array elements and object properties are when variables are displayed.
cwsdump_max_data = 1024 ; Controls the maximum string length that is shown when variables are displayed.
cwsdump_sep_object = "___" ; Separator to deal with objects. Specially for visibility.
cwsdump_font_family = "Monospace"

[cwsdump_colors]
cwsdump_null = "#3465A4"
cwsdump_bool = "#75507B"
cwsdump_string = "#CC0000"
cwsdump_int = "#4E9A06"
cwsdump_float = "#F57900"
cwsdump_array_empty = "#888A85"

; Control how are displayed several values
[cwsdump_display_values]
cwsdump_null = "null"
cwsdump_true = "true"
cwsdump_false = "false"
cwsdump_array_empty = "empty"

Pour utiliser CwsDump, vous aurez juste à inclure la classe et appeler la fonction cwsDump() :

require_once 'class.cws.dump.php';
cwsDump($array = array("aString", 10, 1.5, true, new DateTime()));

Pour plus d'informations, allez consulter le README. Vous pouvez télécharger gratuitement la classe PHP CwsDump sur GitHub. Si vous rencontrez des problèmes ou si avez des idées d'améliorations, merci de poster une issue sur GitHub.