Image de couverture - Problème d'affichage var_dump() PHP (Xdebug)

Problème d'affichage var_dump() PHP (Xdebug)

La fonction PHP var_dump() permet d'afficher « en mode débogage » le contenu d'une variable. Voici ce que vous devez faire si cette dernière ne s'affiche pas correctement.

Icône de calendrier
Icône de chronomètre 3 min

Fonction var_dump()

La fonction PHP var_dump() est en charge de l’affichage détaillée (« en mode débogage ») du contenu d’une variable.

L’affichage retourné par cette fonction présente l’avantage incontestable d’être plus lisible, en partie grâce à :

  • L’usage de l’imbrication
  • L’affichage de son type
  • La taille des éléments (length)

Pour afficher le contenu d’une variable, d’un tableau, d’un objet ou simplement voir si l’exécution de notre code atteint un certain point, il est aujourd’hui difficile pour un développeur PHP de se passer de cette fonction.

Problème d’affichage avec var_dump()

Si vous êtes en train de lire cet article, c’est probablement que vous avez vu - sur un tuto de Grafikart, le MacBook dernier cri de votre collègue webdesigner ou encore le MSI de 3.9 kg de votre meilleur pote - des var_dump() bien plus colorés et fournis que sur votre PC !

Considérons l’extrait de PHP suivant :

$dev = array(
	'id' => 64,
	'username' => 'Athios',
	'languages' => ['HTML', 'CSS', 'JavaScript', 'PHP'],
	'openToWork' => false
);
var_dump($dev);

Le var_dump() vous retourne alors timidement un résultat semblable à cela :

array(4) {
	["id"]=>
	int(64)
	["username"]=>
	string(6) "Athios"
	["languages"]=>
	array(4) {
		[0]=>
		string(4) "HTML"
		[1]=>
		string(3) "CSS"
		[2]=>
		string(10) "JavaScript"
		[3]=>
		string(3) "PHP"
	}
	["openToWork"]=>
	bool(false)
}

Cet affichage noir sur fond blanc ne vous convient pas ?!

Et bien je vous rassure tout de suite, il est absolument normal. Il correspond à l’affichage généré par le var_dump() PHP authentique :

Un joli var_dump() avec Xdebug

Si nous avons parfois tendance à penser que cette absence de formatage est causée par le navigateur utilisé, cela n’est en réalité par l’origine du problème. Vous constaterez rapidement qu’en ouvrant vote page sur plusieurs navigateurs, aucun changement ne sera visible et votre var_dump() sera toujours… moche.

Pourquoi cela ? Parce qu’il s’agit en réalité de la mise en forme authentique de cette fonction et que sa « jolie » version est en réalité gérée par le célèbre paquet Xdebug, bien souvent installé par défaut dans les environnements de développement.

La vraie solution reste donc d’installer ce paquet venant surcharger la fonction PHP var_dump.

Cette évolution lui confère entre autres :

  • L’usage de coloration syntaxique
  • L’ajout d’une balise HTML <pre> autour
  • L’affichage du fichier et de la ligne exécutant ce var_dump()

Installer Xdebug

Je vous invite à consulter la documentation officielle détaillant comment installer Xdebug, en fonction de votre système d’exploitation.

Une fois cela fait, l’affichage généré par le var_dump() sera surchargé par Xdebug. Vous obtiendrez alors quelque chose de semblable à cela :

C:\wamp\www\laconsole\demo\index.php:8:
array (size=4)
	'id' => int 64
	'username' => string 'Athios' (length=6)
	'languages' =>
		array (size=4)
			0 => string 'HTML' (length=4)
			1 => string 'CSS' (length=3)
			2 => string 'JavaScript' (length=10)
			3 => string 'PHP' (length=3)
	'openToWork' => boolean false

Voilà qui est mieux ! ✨

Lire aussi