[英]How to add PHP DebugBar to Twig layout?
创建一个自定义的Twig扩展以呈现呈现调试栏所需的代码。 这样,您可以执行{{ debug_bar() }}
来渲染调试栏:
class DebugBarExtension extends \Twig_Extension
{
public function getFunctions()
{
return [
new \Twig_SimpleFunction('debug_bar', [$this, 'renderDebugBar']),
];
}
public function renderDebugBar()
{
// ... render and return the debug bar
}
}
\\DebugBar\\JavascriptRenderer::renderOnShutdownWithHead
可能有用。
例如,按照@Wouter的建议创建一个Twig函数,但是与其立即渲染调试栏,不如将其注册为稍后渲染,就在关机之前。
我不确定为什么要使用Twig渲染DebugBar,除非您尝试测量渲染性能或类似的性能(对于DebugBar IMO来说并不需要,因为它永远不会进入生产状态)。
无论如何,您都不需要特殊的插件, 工件 ,类或代码来在Twig呈现的页面中显示DebugBar。 您可以简单地执行以下操作:
1)在用于将变量发送到Twig的Array中添加DebugBar渲染的结果( Head和Body )。 例:
$template_vars['debugbar_Head'] = $debugbarRenderer->renderHead();
$template_vars['debugbar_Body'] = $debugbarRenderer->render();
2)在模板中添加变量:
<head>
-- other stuff ---
{{ debugbar_Head | raw }}
</head>
<body>
{{ debugbar_Body | raw }}
-- other stuff ---
</body>
重要提示 :请确保您的“ debugbar_Head”位于head标记的末尾,“ debugbar_Body”位于body标记的开始(出于某种原因,这有助于防止罕见的渲染错误)。
3)正常渲染您的模板:
echo $view->render('your-template-path', $template_vars);
享受Twig呈现的页面,其底部具有功能齐全的DebugBar。
注意:网络上有一些东西可以促进Twig和DebugBar的“混合”。 请尝试使用它们之前,请检查它们是否与框架无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.