在这种情况下,白色(空白)屏幕意味着PHP致命错误:允许的内存大小耗尽.在我的调查过程中,我发现了一些奇怪的事情:twig在安装了VarDumper组件时使用了var_dump
函数.
如果没有安装VarDumper,我认为它可以使用,但是dump()
symfony的VarDumper组件文档中的twig函数就像复杂的解决方案一样,这很奇怪.
因此,使用VarDumper的dump()
函数而不是本机var_dump()
解决了内存问题(因为VarDumper将结果转储集合限制到足够的量).另外VarDumper dump()
提供更方便的结果 - 您可以单击树叶来显示/隐藏其内容.
vendor/twig/twig/lib/Twig/Extension/Debug.php
twig_var_dump
功能var_dump()
来电替换为dump()
ob_start() + ob_get_clean()
构造(如果您使用var_dump()
它,则需要它,因为它会立即回应数据,但dump()
行为更加智能)要么
使用此复制+替换整个函数;)
function twig_var_dump(Twig_Environment $env, $context)
{
if (!$env->isDebug()) {
return;
}
// ob_start();
$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));
}
}
// return ob_get_clean();
}
Run Code Online (Sandbox Code Playgroud)
PS:问题在2013年被问到,但我希望它有所帮助,因为我现在遇到了这个问题.
我的背景:
"symfony/symfony": "2.5.*"
"symfony/var-dumper": "~2.6"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5709 次 |
最近记录: |