2009-09-23 2 views
14

Xdebug отображает «var_dump» по-своему с более полезной информацией, но в Firebug нечитабельно.Непрочитанный var_dump в Firebug при включенном xdebug

Мне было интересно, есть ли способ показать var_dump в Firebug, чтобы сделать его доступным для чтения, не отключая xdebug, а также сохраняя отображение var_dump, сделанное xdebug на PHP.

Примеры var_dump отображенные в Firebug:

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

По умолчанию:

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

Что означает 'нечитаемым' означает? Нет вывода вообще? Выпущенный выход? Отсутствующие части? ... –

+0

Html добавляются в var_dump, в Firebug сложнее читать результат. – MaoTseTongue

+0

Вы используете FirePHP?Насколько я знаю, FirePHP умеет довольно печатать объекты и массивы PHP, поэтому нет необходимости запускать их через var_dump() –

ответ

9

Вы можете отключить Xdebug- var_dump() -overloading установкой xdebug.overload_var_dump в false , Затем вы можете использовать var_dump(), когда вам не понадобится дополнительное форматирование HTML и xdebug_var_dump(), когда вам требуется полностью отформатированный отладочный вывод.

Но, как я уже писал в моем комментарии выше, если вы используете FirePHP, вы можете просто позволить FirePHP формат вывода в вашей Firebug консоли: решение

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

FirePHP отлично работает, спасибо. – MaoTseTongue

9

Mike B «s,

ini_set('xdebug.overload_var_dump', 0);

не работал с моей установкой.

Но я могу это сделать, чтобы подавить в HTML:

ini_set('html_errors' , 0);

+0

Ваше решение сработало для меня! –

4

ini_set('xdebug.overload_var_dump', 0); не работает и здесь. ini_set('html_errors' , 0); действительно работает, но иногда бывает очень медленно.

В качестве простого решения проблемы вы могли бы использовать это:

echo var_export($this); 

Что только 7 нажатий клавиш больше, чем нормальный var_dump.

6

Установка xdebug.overload_var_dump="0" в php.ini решена проблема в моем случае.

1

Вы можете использовать альтернативу:

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

Он работает с нулевой настройки и имеет гораздо больше возможностей, чем Xdebug-х var_dump в любом случае.

Скриншот:

Kint screenshot