Xdebug отображает «var_dump» по-своему с более полезной информацией, но в Firebug нечитабельно.
Мне было интересно, есть ли способ показать 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'>=></font> <small>string</small> <font color='#cc0000'>'42'</font> <i>(length=2)</i> 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'Mao'</font> <i>(length=3)</i> </pre>
Вы можете отключить Xdebug- var_dump()
-перегрузку, установив 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
Решение Майка Б ,
ini_set('xdebug.overload_var_dump', 0);
не работает с моей установкой.
Но я могу сделать это, чтобы подавить html:
ini_set( 'html_errors' , 0 );
Установка xdebug.overload_var_dump="0"
в php.ini решила проблему в моем случае.
ini_set('xdebug.overload_var_dump', 0);
здесь тоже не работает. ini_set( 'html_errors' , 0 );
работает, но иногда бывает очень медленно.
В качестве простого обходного пути вы можете использовать это:
echo var_export($this);
Который всего 7 нажатий клавиш больше, чем обычный var_dump.
Вы можете использовать альтернативу:
http://raveren.github.io/kint/
Он работает с нулевой настройкой и имеет гораздо больше возможностей, чем var_dump
от Xdebug.
Скриншот: