🐘
[PHP] xdebugにvar_dumpを省略させないためのコードスニペット
xdebugがvar_dumpの出力を途中で省略しちゃう問題
PHPでxdebugを有効にしていると、 var_dump()
の出力内容が多いときにデフォルトの挙動だと途中以降が省略されます。
出力全体が見たいとき、いちいちxdebugをオフにして実行し直したりしてませんか?
そんなことしなくてもランタイムで制御できるんです。
var_dumpの出力を省略させないためのコードスニペット
結論としては、以下のコードで省略を回避できます👍
ini_set('xdebug.var_display_max_children', '-1');
ini_set('xdebug.var_display_max_data', '-1');
ini_set('xdebug.var_display_max_depth', '-1');
コードスニペットの意味
-
xdebug.var_display_max_children
:出力する子要素の数 -
xdebug.var_display_max_data
:出力する要素の数 -
xdebug.var_display_max_depth
:出力する階層の深さ
をすべて -1
つまり無限に設定しています。
デフォルト値はそれぞれ
xdebug.var_display_max_children = 128
xdebug.var_display_max_data = 512
xdebug.var_display_max_depth = 3
となっています。
Xdebug: Documentation » Variable Display Features
https://xdebug.org/docs/display
まとめ
- xdebugがvar_dumpの出力を途中で省略しちゃう問題あるけど、出力全体を見たいとき、わざわざxdebugを切らなくても、
xdebug.var_display_max_*
系の設定を変えることでランタイムで省略回避できる - とても捗る
Discussion