symfony2 doctrine2中的var_dump数据太多

时间:2012-08-10 12:54:30

标签: php debugging doctrine-orm symfony-2.1

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

我想知道这个问题。

数据插入正常。我可以在生产中引起问题。

9 个答案:

答案 0 :(得分:217)

var_dump()替换为dump()提供的调试方法 Doctrine Common

\Doctrine\Common\Util\Debug::dump($user);

它适用于单个对象和Doctrine集合,并且应该阻止浏览器显示您遇到的问题。

答案 1 :(得分:20)

格式良好:

echo '<pre>';
\Doctrine\Common\Util\Debug::dump($user, $recurciveLevelToDisplay);
echo '</pre>';

答案 2 :(得分:4)

简单易行的例子。

var_dump(serialize($Object));

答案 3 :(得分:3)

Symfony&lt; 2.6

您可以使用\Doctrine\Common\Util\Debug::dump($variable, $depth);显示没有代理信息的学说输出。

Symfony&gt; 2.6

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

答案 4 :(得分:2)

问题在于,在双向关系中,两个实体都有相互链接,因此在显示entity1时,var_dump还必须打印entity2的所有属性,包括entity1本身给你一个循环。

答案 5 :(得分:2)

get_object_vars()也改善了可视化效果。

echo "<pre>";
\Doctrine\Common\Util\Debug::dump(get_object_vars($user));

答案 6 :(得分:2)

使用Symfony 2.6,您现在可以在控制器中使用dump($ var),在树枝中使用{{dump(var)}}。

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

$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();

答案 7 :(得分:2)

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

答案 8 :(得分:1)

只需使用 echo serialize($ user);