Symfony 小枝';s dump函数返回一个空白屏幕
我正在Symfony2中使用Twig函数。我已根据配置Symfony 我有一个Symfony 小枝';s dump函数返回一个空白屏幕,symfony,twig,Symfony,Twig,我正在Symfony2中使用Twig函数。我已根据配置Symfony 我有一个page变量和一个orders数组转储可以在页面上工作,但不能在订单上工作。当我在订单上调用它时,我会看到一个白色屏幕——没有php错误或任何东西。我不知道如何调试这个 有什么想法吗?很可能您的PHP内存已经达到极限。尝试在php.ini中增加它我也有同样的问题,将内存限制增加到1Gb没有帮助。 就我而言,我想打电话给 {{ dump() }} 没有参数(在当前模板的上下文中查看所有可用的变量。在我的例子中
page
变量和一个orders
数组<代码>转储可以在页面上工作,但不能在订单上工作。当我在订单上调用它时,我会看到一个白色屏幕——没有php错误或任何东西。我不知道如何调试这个
有什么想法吗?很可能您的PHP内存已经达到极限。尝试在php.ini中增加它我也有同样的问题,将内存限制增加到1Gb没有帮助。 就我而言,我想打电话给
{{ dump() }}
没有参数(在当前模板的上下文中查看所有可用的变量。在我的例子中,以下内容有帮助:,尽管内存限制问题仍然存在)这个问题可能没有单一的答案,因为一系列因素可能导致它。正如其他人所建议的,增加PHP的内存限制可能会有所帮助。在我的情况下,这没有帮助,但是,我能够通过安装xdebug来解决这个问题 到目前为止,解决这一问题的清单似乎如下所示:
var\u dump
功能
我认为如果没有安装VarDumper组件,它可以正常工作,但是在symfony的VarDumper组件文档中包含的twig的dump()
函数就像一个复杂的解决方案,这很奇怪
因此,使用VarDumper的dump()
函数而不是本机var\u dump()
解决了内存问题(因为VarDumper限制了足够的结果转储收集量)。另外,VarDumper的dump()
提供了更方便的结果-您可以单击树叶来显示/隐藏其内容
你到底需要做什么
- 如果未安装
- 转到文件:
vendor/twig/twig/lib/twig/Extension/Debug.php
- 查找
函数twig\u var\u dump
- 替换对
dump()的所有
调用var\u dump()
- 删除/注释
construction(这是必需的 如果使用ob_start()+ob_get_clean()
即时回显数据,但var\u dump()
执行 (更智能)dump()
function twig_var_dump(Twig_Environment $env, $context)
{
if (!$env->isDebug()) {
return;
}
$count = func_num_args();
if (2 === $count) {
$vars = array();
foreach ($context as $key => $value) {
if (!$value instanceof Twig_Template) {
$vars[$key] = $value;
}
}
dump($vars);
} else {
for ($i = 2; $i < $count; $i++) {
dump(func_get_arg($i));
}
}
}
Arkemlar的答案很好用 但是
在这之后,在我的例子中,twig dump()在phpunit的功能测试中导致了一个运行时异常。看起来你是对的,但我不明白怎么做。这只是与我的实例数据相关的一个表单——我已经将限制提高到200MB,但仍然没有骰子。有什么想法吗?你的错误记录里有什么吗?您是否启用了错误报告功能?我不记得了,但我不这么认为。我做的一件事是将数据作为json响应返回,然后在inspector中查看它。但我从未发现根本原因。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论-您可以随时在自己的帖子上发表评论,这是一个潜在的问题答案,因为我遇到了完全相同的问题,这就是解决问题的方法。你应该在官方的细枝上提出一个拉动请求repository@Charles-AntoineFournel这是个好主意,我会在未来在目前的状态下进行研究,我假设symfony 3.0.9具有此功能,因为我在新安装的项目中看到dump()函数在我的twig模板中工作。@Arkemlar不幸的是,这在symfony 4中仍然存在–建议的修复确实有帮助。@bleistift2,看来我们需要做一个失败的测试,它将解决这个问题并打开PR。我希望我有时间来做…如果你有新问题,请点击按钮提问。如果你有足够的声誉,问题就来了。或者,“星”它作为一个最喜爱的,你会被告知任何新的答案。
"symfony/symfony": "2.5.*"
"symfony/var-dumper": "~2.6"