Как получить дамп xdebug var, чтобы показать полный объект / массив



Я использую xdebug (php_xdebug-2.1.2-5.3-vc9.dll) на WAMP. Когда я использую var_dump на большом объекте или переменной он не показывает полную переменную.



array
'node' =>
array
'my_form' =>
array
'form' =>
array
...


без xdebug он показывает, как и следовало ожидать. Я посмотрел на документацию, но не вижу решения. Кто-нибудь знает, как я могу исправить это так xdebug var_dump показывает полное

644   6  

6 ответов:

это настраиваемые переменные в php.ini:

; with sane limits
xdebug.var_display_max_depth = 10
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024 


; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1 
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1 

конечно, они также могут быть установлены во время выполнения через ini_set(), полезно, если вы не хотите изменять php.ini и перезагрузить веб-сервер, но нужно быстро проверить что-то более глубоко.

ini_set('xdebug.var_display_max_depth', '10');
ini_set('xdebug.var_display_max_children', '256');
ini_set('xdebug.var_display_max_data', '1024');

настройки Xdebug описаны в официальной документации.

Я знаю, что это супер старый пост, но я решил, что это все еще может быть полезно.

Если вам удобно читать формат json, вы можете заменить свой var_dump на:

return json_encode($myvar);

Я использую это, чтобы помочь устранить неполадки службы, которую я строил, которая имеет некоторые глубоко вложенные массивы. Это вернет каждый уровень вашего массива, не усекая ничего и не требуя, чтобы вы изменили свой php.ini-файл.

кроме того, поскольку данные json_encoded являются строка это означает, что вы можете легко записать его в журнал ошибок

error_log(json_encode($myvar));

Это, вероятно, не лучший выбор для каждой ситуации, но это выбор!

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

https://github.com/kint-php/kint

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

 +d( $variable ); // append `+` to the dump call

Я теперь это поздно, но это может быть полезно:

echo "<pre>";
print_r($array);
echo "</pre>";

оформить заказ настройки var_dump Xdebbug, в частности, значения этих параметров:

xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth

Я хотел бы рекомендовать var_export($array) - Он не показывает типы, но он генерирует синтаксис, который вы можете использовать в своем коде:)

Comments

    Ничего не найдено.