按照official documentation上的说明,可以在每个ajax请求上更新调试工具栏:
use Symfony\Component\HttpKernel\Event\ResponseEvent;
// ...
public function onKernelResponse(ResponseEvent $event)
{
if (!$this->getKernel()->isDebug()) {
return;
}
$request = $event->getRequest();
if (!$request->isXmlHttpRequest()) {
return;
}
$response = $event->getResponse();
$response->headers->set('Symfony-Debug-Toolbar-Replace', 1);
}
不幸的是,所描述的代码无法完全正常工作:$this->getKernel()->isDebug()
会创建异常,因为getKernel()
不是EventSubscriber
的方法。
可以在getKernel()
对象上调用ResponseEvent
,但是它返回一个没有HTTPKernel
方法的isDebug()
对象。
如何确定EventSubscriber
中是否启用了调试工具栏?