2009-09-23 11 views
14

Xdebug visualizza "var_dump" a suo modo con altre informazioni utili, ma in Firebug è illeggibile.var_dump illeggibile in Firebug quando xdebug è abilitato

Mi chiedevo se c'era un modo per visualizzare var_dump in Firebug per renderlo leggibile senza disabilitare xdebug e mantenendo anche la visualizzazione del var_dump fatto da xdebug in PHP.

Esempi di var_dump visualizzati in Firebug:

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

predefinito:

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

Cosa significa 'illeggibile' dire? Nessun output? Uscita incasinata? Pezzi mancanti? ... –

+0

Html viene aggiunto a var_dump, in Firebug è più difficile leggere l'output. – MaoTseTongue

+0

Stai usando FirePHP?Per quanto ne so FirePHP è in grado di stampare abbastanza oggetti e array PHP quindi non c'è bisogno di eseguirli attraverso var_dump() –

risposta

9

È possibile disattivare Xdebug- var_dump() -overloading impostando xdebug.overload_var_dump a false . Quindi è possibile utilizzare var_dump() quando non è necessaria la formattazione HTML aggiuntiva e xdebug_var_dump() quando si richiede un output di debug completamente formattato.

Ma, come ho scritto nel mio commento di cui sopra, se si sta utilizzando FirePHP, si può semplicemente lasciare che FirePHP formattare l'output nella console Firebug: soluzione

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

FirePHP funziona bene, grazie. – MaoTseTongue

9

s' Mike B,

ini_set('xdebug.overload_var_dump', 0);

non ha funzionato con la mia installazione.

Ma posso fare questo a reprimere il codice html:

ini_set('html_errors' , 0);

+0

La tua soluzione ha funzionato per me! –

4

ini_set('xdebug.overload_var_dump', 0); non funziona neanche qui. ini_set('html_errors' , 0); funziona ma a volte può essere molto lento.

Come semplice soluzione si potrebbe usare questo:

echo var_export($this); 

che dista solo 7 pressioni dei tasti più della var_dump normale.

6

Impostazione xdebug.overload_var_dump="0" in php.ini risolto il problema nel mio caso.

1

È possibile utilizzare in alternativa:

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

Funziona con lo zero set-up e ha molto più caratteristiche di Xdebug di var_dump comunque.

Screenshot:

Kint screenshot

Problemi correlati