bug #28029 [TwigBundle] remove cache warmers when Twig cache is disabled (xabbuh)

This PR was merged into the 2.8 branch.

Discussion
----------

[TwigBundle] remove cache warmers when Twig cache is disabled

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28009
| License       | MIT
| Doc PR        |

Commits
-------

ef1f7ff0bb remove cache warmers when Twig cache is disabled
This commit is contained in:
Fabien Potencier 2018-09-04 10:59:51 +02:00
commit e7d325f49f
2 changed files with 12 additions and 2 deletions

View File

@ -49,10 +49,15 @@ class ExtensionPass implements CompilerPassInterface
$coreThemePath = \dirname(\dirname($reflClass->getFileName())).'/Resources/views/Form';
$container->getDefinition('twig.loader.native_filesystem')->addMethodCall('addPath', array($coreThemePath));
$paths = $container->getDefinition('twig.cache_warmer')->getArgument(2);
$paths = $container->getDefinition('twig.template_iterator')->getArgument(2);
$paths[$coreThemePath] = null;
$container->getDefinition('twig.cache_warmer')->replaceArgument(2, $paths);
$container->getDefinition('twig.template_iterator')->replaceArgument(2, $paths);
if ($container->hasDefinition('twig.cache_warmer')) {
$paths = $container->getDefinition('twig.cache_warmer')->getArgument(2);
$paths[$coreThemePath] = null;
$container->getDefinition('twig.cache_warmer')->replaceArgument(2, $paths);
}
}
if ($container->has('fragment.handler')) {

View File

@ -132,6 +132,11 @@ class TwigExtension extends Extension
$container->getDefinition('twig')->replaceArgument(1, $config);
if (false === $config['cache']) {
$container->removeDefinition('twig.cache_warmer');
$container->removeDefinition('twig.template_cache_warmer');
}
$this->addClassesToCompile(array(
'Twig_Environment',
'Twig_Extension',