2009-09-23 9 views
14

Xdebug affiche "var_dump" à sa manière avec des informations plus utiles, mais dans Firebug est illisible.Var_dump inreadable dans Firebug lorsque xdebug est activé

Je me demandais s'il y avait un moyen d'afficher le var_dump dans Firebug pour le rendre lisible sans désactiver xdebug et en gardant aussi l'affichage de var_dump fait par xdebug en PHP.

Exemples de var_dump affichés dans Firebug:

$test = array('id' => '42', 'name' => 'Mao'); 
var_dump($test); 

Par défaut:

array(2) { 
    ["id"]=> 
    string(2) "42" 
    ["name"]=> 
    string(3) "Mao" 
} 

Xdebug:

<pre class='xdebug-var-dump' dir='ltr'> 
<b>array</b> 
    'id' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'42'</font> <i>(length=2)</i> 
    'name' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Mao'</font> <i>(length=3)</i> 
</pre> 
+1

Que signifie 'illisible'? Pas de sortie du tout? Sortie ratée? Pièces manquantes? ... –

+0

Html sont ajoutés à var_dump, dans Firebug, il est plus difficile de lire la sortie. – MaoTseTongue

+0

Utilisez-vous FirePHP?Pour autant que je sache, FirePHP est capable de joliment imprimer des objets et des tableaux PHP donc il n'est pas nécessaire de les lancer via var_dump() –

Répondre

9

Vous pouvez désactiver Xdebug- var_dump() en mettant xdebug.overload_var_dump -de surcharge à false . Vous pouvez ensuite utiliser var_dump() lorsque vous n'avez pas besoin du formatage HTML supplémentaire et xdebug_var_dump() lorsque vous avez besoin d'une sortie de débogage entièrement formatée.

Mais comme je l'ai écrit dans mon commentaire ci-dessus, si vous utilisez FirePHP, vous pouvez simplement laisser formater FirePHP la sortie dans la console Firebug:

fb($variable, FirePHP::DUMP) // or 
FB::dump('Key', $variable) // or 
$firephp->dump('Key', $variable); // where $firephp is your FirePHP instance 
+0

FirePHP fonctionne bien, merci. – MaoTseTongue

9

solution de Mike B,

ini_set('xdebug.overload_var_dump', 0);

n'a pas fonctionné avec mon installation.

Mais je peux le faire pour supress le code html:

ini_set('html_errors' , 0);

+0

Votre solution a fonctionné pour moi! –

4

ini_set('xdebug.overload_var_dump', 0); ne fonctionne pas non plus. ini_set('html_errors' , 0); fonctionne mais il peut parfois être très lent.

Pour contourner ce problème simple, vous pouvez utiliser ceci:

echo var_export($this); 

Ce qui est à seulement 7 de plus que le frappes de touches var_dump normale.

6

Le paramètre xdebug.overload_var_dump="0" dans php.ini a résolu le problème dans mon cas.

1

Vous pouvez utiliser une alternative:

http://raveren.github.io/kint/

Il fonctionne avec zéro set-up et a beaucoup plus de fonctionnalités que Xdebug de var_dump de toute façon.

Screenshot:

Kint screenshot