Php symfony2 doctrine2中的var_dump数据过多

Php symfony2 doctrine2中的var_dump数据过多,php,debugging,doctrine-orm,symfony-2.1,Php,Debugging,Doctrine Orm,Symfony 2.1,我有大约40个实体和许多双向关系。 每当我使用var_dump($user)或任何实体时,我的浏览器就会加载太多的数组和变量数据,然后它就会崩溃 我想知道有什么问题 数据被很好地插入。我是否可以在生产中引起问题。使用提供的调试方法替换var\u dump() 它适用于单个对象和条令集合,应该可以防止浏览器显示您遇到的问题。问题是,在双向关系中,两个实体都有彼此的链接,因此在显示entity1变量时,dump还必须打印entity2的所有属性,其中包括entity1本身,为您提供一个循环。格式良好

我有大约40个实体和许多双向关系。 每当我使用var_dump($user)或任何实体时,我的浏览器就会加载太多的数组和变量数据,然后它就会崩溃

我想知道有什么问题

数据被很好地插入。我是否可以在生产中引起问题。

使用提供的调试方法替换var\u dump()


它适用于单个对象和条令集合,应该可以防止浏览器显示您遇到的问题。

问题是,在双向关系中,两个实体都有彼此的链接,因此在显示entity1变量时,dump还必须打印entity2的所有属性,其中包括entity1本身,为您提供一个循环。

格式良好:

echo '<pre>';
\Doctrine\Common\Util\Debug::dump($user, $recurciveLevelToDisplay);
echo '</pre>';
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
echo';
\条令\Common\Util\Debug::dump($user$recurciveLevelToDisplay);
回声';
get\u object\u vars()也可以改善可视化效果

echo”“;
\条令\Common\Util\Debug::dump(get_object_vars($user));
只需使用
echo序列化($user)

使用symfony2.6,您现在可以在控制器中使用dump($var),在twig中使用{dump(var)}}

确保将其添加到您的AppKernal.php文件中的array('dev','test')部分


简单易懂的例子


使用dump($user),您可以在Symfony Profiler中看到完美的结果!祝你好运

您可以使用
\doctor\Common\Util\Debug::dump($variable,$depth)显示不带代理信息的条令输出

Symfony>2.6

如果您使用的是symfony 2.6或更高版本,我强烈建议您使用
dump()
。 它显示了格式良好且颜色鲜艳的输出,您可以动态扩展/隐藏行。

我们谈论的是什么浏览器?您正在使用xdebug吗?如果不是,考虑使用它,而不是VARYDUMP,只需使用带有Ecplipse、NETBESE或PHP暴的IDE的步骤调试器。所有这些都将很好地显示变量数据。你所说的“崩溃”是什么意思?浏览器应用程序(或选项卡)关闭了,还是没有显示结果,或者页面被中断了?我的浏览器显示了很长的一页变量数据以及我所有的实体等等。看起来这是一个永无止境的循环。我试过firefox和chrome。如果我尝试任何其他没有关系的类,那么它工作正常,但是有很多关系,它会冻结计算机。我不得不结束这项任务,因为我有一个基本的课程,我的浏览器也崩溃了。我讨厌所有这些延迟的默认设置。您也可以使用MaxDepth
dump()
,在
dump()
中,第二个参数是MaxDepth。如果您希望在php错误日志中有调试输出,请使用以下命令:
error\u log(print\r(\doctor\Common\Util\debug::export($variable,$depth),1))echo "<pre>";
\Doctrine\Common\Util\Debug::dump(get_object_vars($user));
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
var_dump(serialize($Object));