2009-09-23 7 views
14

Xdebug zeigt "var_dump" auf seine eigene Weise mit nützlicheren Informationen, aber in Firebug ist nicht lesbar.Unlesbare var_dump in Firebug, wenn xdebug aktiviert ist

Ich frage mich, ob es eine Möglichkeit gab, die var_dump in Firebug anzuzeigen, um es lesbar zu machen, ohne xdebug zu deaktivieren und auch die Anzeige des von xdebug in PHP erstellten var_dump beizubehalten.

Beispiele für Var_dump in Firebug angezeigt:

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

Standard:

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

Was bedeutet 'nicht lesbar' bedeuten? Überhaupt keine Ausgabe? Vermasselte Ausgabe? Fehlende Teile? ... –

+0

Html werden zu var_dump hinzugefügt, in Firebug ist es schwieriger, die Ausgabe zu lesen. – MaoTseTongue

+0

Verwenden Sie FirePHP?Soweit ich weiß, ist FirePHP in der Lage, PHP-Objekte und -Arrays schön zu drucken, so dass sie nicht durch var_dump() ausgeführt werden müssen. –

Antwort

9

Sie können durch das Setzen xdebug.overload_var_dump zu false Xdebug- var_dump() -overloading ausschalten . Dann können Sie var_dump() verwenden, wenn Sie die zusätzliche HTML-Formatierung nicht benötigen, und xdebug_var_dump(), wenn Sie eine vollständig formatierte Debugausgabe benötigen.

Aber wie ich in meinem Kommentar oben geschrieben habe, wenn Sie FirePHP verwenden, können Sie einfach lassen FirePHP die Ausgabe in der Firebug-Konsole formatiert:

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

FirePHP funktioniert gut, danke. – MaoTseTongue

9

Mike B ‚s Lösung,

ini_set('xdebug.overload_var_dump', 0);

hat nicht mit meiner Installation funktioniert.

Aber ich kann dies tun, um die html zu unterdrücken:

ini_set('html_errors' , 0);

+0

Ihre Lösung hat für mich funktioniert! –

4

ini_set('xdebug.overload_var_dump', 0); funktioniert hier nicht entweder. ini_set('html_errors' , 0); funktioniert, aber manchmal kann es sehr langsam sein.

Als einfache Abhilfe Sie können diese verwenden:

echo var_export($this); 

die nur 7 Drücken von Tasten mehr als die normale Var_dump ist.

6

Einstellung xdebug.overload_var_dump="0" in php.ini löste das Problem in meinem Fall.