我正在使用带有Twig的PHP Symfony 2。可能与纯PHP相关。
出于WAMP + Windows 7的性能原因,我已经停用了XDebug扩展。现在我的页面加载速度更快。
但是,这会带来var转储问题。
php var_dump的漂亮格式已经消失了。我已经安装了 REF,我可以用 ~r($myvariable)
得到类似的东西.
但是树枝{{ dump(myvariable) }}
不再起作用,尽管我确实在 php 端验证了myvariable
有效,但我得到一个完整的空白屏幕。
如何在不安装 XDebug 的情况下让var_dump
在 PHP 和 twig 中正常工作?
html <pre>
标签轻松实现这一点。
HTML
<pre>
元素(或 HTML 预格式化文本)表示 预先格式化的文本。此元素中的文本通常显示在 与文件中的布局完全不成比例的字体。 此元素内的空格显示为键入。
源
您的代码将如下所示:
echo '<pre>';
var_dump($variable);
echo '</pre>';
好吧,这个问题是由var_dump
转储整个对象引起的:如果对象有很多关联,PHP 需要很长时间才能显示结果,并且它只是用树枝崩溃了。
我的短期解决方案:对象不var_dump
我的中期解决方案:为 REF 实现树枝过滤器。
通常 XDebug 的输出更好(当html_errors打开时),但是如果您禁用了扩展,则可以添加pre
标签,例如
<pre>
{{ dump(user) }}
</pre>
或者要显示所有变量,请仅使用 <pre> {{ dump() }} </pre>
。或者,检查代码源,以便可以正确显示新行尾。
请注意,转储函数在默认情况下不可用,因此您必须在创建 Twig 环境时显式添加Twig_Extension_Debug
扩展:
$twig = new Twig_Environment($loader, array(
'debug' => true,
// ...
));
$twig->addExtension(new Twig_Extension_Debug());
否则dump
如果未启用环境中的调试选项,则该函数将不会显示任何内容。
如果仍有空白页,请启用 PHP 错误报告并将其显示在页面上,或检查 PHP 错误日志以获取任何线索。
参见: 函数 » 转储