当我在Laravel中使用dd($myVar)
时,输出仅显示两个级别。为什么会这样?
第一级显示为展开,我可以单击以展开第二级。简单地用array:2
来概括第三级(对于具有两个元素的任何数组)。
编辑:
我注意到var_dump()
的输出受到类似的限制。我将xdebug深度设置更改为10,ini_set('xdebug.var_display_max_depth', 10)
,这解决了var_dump
中的问题,但没有解决dd
中的问题。
答案 0 :(得分:0)
最简单的方法是使用ctrl+click
扩展所有子项,甚至可以使用ctrl+F
搜索值和变量
如果它不适合您,则可以创建自己的帮助程序,该帮助程序取决于xdebug配置设置。添加一个新文件“ helpers.php”,然后使用composer.json自动加载
"autoload": {
"files": [
"app/helpers.php"
]
}
我使用了一个匿名类,您可以创建一个专用类来清理/重用代码
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Illuminate\Support\Debug\HtmlDumper;
function xdebug_dd(...$args)
{
http_response_code(500);
$obj = new class {
public function dump($value)
{
if (class_exists(CliDumper::class)) {
$dumper = new HtmlDumper;
$dumper->dump((new VarCloner)->cloneVar($value), null, [
'maxDepth' => ini_get('xdebug.var_display_max_depth')
]);
} else {
var_dump($value);
}
}
};
foreach ($args as $x) {
$obj->dump($x);
}
die(1);
}