交响乐 3.1.2 "The service 'profiler' has a dependency on a non-existent service 'debug.security.access.decision_manager'."

Symfony 3.1.2 "The service 'profiler' has a dependency on a non-existent service 'debug.security.access.decision_manager'."

将 Symfony 从 3.0.2 更新到 3.1.2 后,当我 运行 命令时。

php bin/console cache:clear --env=prod

我现在收到以下错误:

[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException] The service "profiler" has a dependency on a non-existent service "debug.security.access.decision_manager".

有谁知道为什么会这样,或者我可以做些什么来解决这个问题?我可以根据需要添加任何其他信息。提前致谢!!!

这个问题与我在生产环境中包含调试资源有关。我正在对缓存机制进行测试,忘记从 config.yml 和 AppKernel.php 文件中删除包含内容。

        if (in_array($this->getEnvironment(), ['dev','test','prod'], true)) {
            $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
            $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
            $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
            $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
            //... Extensions From Base
            $bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
    }

因此 AppKernel 实例化需要将调试参数设置为 true。

$kernel = new AppKernel('prod', true);

否则会导致我问这个问题修复的初始问题