Symfony2调试工具栏未注入Symfony 2.8

时间:2017-03-02 12:28:19

标签: php symfony

我正在尝试让Web调试栏出现在Symfony 2.8中,但我无法使其工作。

我的模板有一个结束标记。调用WebDebugToolbarListener但在这种情况下中止:

     if (self::DISABLED === $this->mode
        || !$response->headers->has('X-Debug-Token')
        || $response->isRedirection()
        || ($response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html'))
        || 'html' !== $request->getRequestFormat()
        || false !== stripos($response->headers->get('Content-Disposition'), 'attachment;')
    ) {
        return;
    }

    $this->injectToolbar($response, $request);

我进行了调试,发现“X-Debug-Token”永远不会包含在标题中。这就是为什么从不调用injectToolbar方法的原因。当我对工具栏显示的特定行|| !$response->headers->has('X-Debug-Token')发表评论时,我会收到例外:

  

“参数”标记“for route”_wdt“必须匹配”[^ /] ++“(”“给定)到   生成相应的网址。“

显然处理这个问题的方法也是错误的。

我做错了什么?我没有想法。

以下是我配置的内容:

#config_dev.yml
framework:
    router:
        resource: "%kernel.root_dir%/config/routing_dev.yml"
        strict_requirements: true
profiler: { only_exceptions: true }

web_profiler:
    toolbar: true
    intercept_redirects: false
    position: bottom
//app_dev.php
Debug::enable();

require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
//AppKernel.php
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
    $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
    $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
    $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
    $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
#routing_dev.yml
_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /_configurator

1 个答案:

答案 0 :(得分:1)

显然我必须明确地启用探查器(设置X-Debug-Token)。 RTM获胜。我过去从未这样做过。

关键是设置only_exceptions: false。否则,探查器不会收集任何数据,也不会设置X-Debug-Token,因此工具栏不会附加。我过去已将此标志设置为true,因为我的缓存目录增长非常快。

默认情况下,对于开发和测试环境,enabled标志设置为true。

#config_dev.yml
framework:
    router:
        resource: "%kernel.root_dir%/config/routing_dev.yml"
        strict_requirements: true
    profiler: { only_exceptions: false }