From 6aa98d163d57ef1e2a154266dc258516106b9d96 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 8 Jan 2017 11:25:14 -0800 Subject: [PATCH] [TwigBundle] fixed usage when Templating is not installed --- .../DependencyInjection/Compiler/ExtensionPass.php | 12 +++++++----- .../TwigBundle/DependencyInjection/TwigExtension.php | 2 +- .../TwigBundle/Resources/config/templating.xml | 2 -- .../Bundle/TwigBundle/Resources/config/twig.xml | 1 + .../Tests/DependencyInjection/TwigExtensionTest.php | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index d619de0d81..36cea3d0fe 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -45,7 +45,7 @@ class ExtensionPass implements CompilerPassInterface if ($container->has('form.extension')) { $container->getDefinition('twig.extension.form')->addTag('twig.extension'); $reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension'); - $container->getDefinition('twig.loader.filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); + $container->getDefinition('twig.loader.native_filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); } if ($container->has('fragment.handler')) { @@ -88,11 +88,13 @@ class ExtensionPass implements CompilerPassInterface $container->getDefinition('twig.extension.debug')->addTag('twig.extension'); } - if (!$container->has('templating')) { - $loader = $container->getDefinition('twig.loader.native_filesystem'); - $loader->addTag('twig.loader'); - $loader->setMethodCalls($container->getDefinition('twig.loader.filesystem')->getMethodCalls()); + $twigLoader = $container->getDefinition('twig.loader.native_filesystem'); + if ($container->has('templating')) { + $loader = $container->getDefinition('twig.loader.filesystem'); + $loader->setMethodCalls($twigLoader->getMethodCalls()); + $twigLoader->clearTag('twig.loader'); + } else { $container->setAlias('twig.loader.filesystem', new Alias('twig.loader.native_filesystem', false)); } diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index e9f55f758d..e6ea35b3bd 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -77,7 +77,7 @@ class TwigExtension extends Extension $envConfiguratorDefinition->replaceArgument(4, $config['number_format']['decimal_point']); $envConfiguratorDefinition->replaceArgument(5, $config['number_format']['thousands_separator']); - $twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.filesystem'); + $twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.native_filesystem'); // register user-configured paths foreach ($config['paths'] as $path => $namespace) { diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/templating.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/templating.xml index 5a39c95018..c1c57d928d 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/templating.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/templating.xml @@ -10,8 +10,6 @@ - - diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index c08be1f039..457cb5c06a 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -53,6 +53,7 @@ + diff --git a/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php b/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php index ab4d649428..ff4103d291 100644 --- a/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php +++ b/src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php @@ -187,7 +187,7 @@ class TwigExtensionTest extends TestCase $this->loadFromFile($container, 'extra', $format); $this->compileContainer($container); - $def = $container->getDefinition('twig.loader.filesystem'); + $def = $container->getDefinition('twig.loader.native_filesystem'); $paths = array(); foreach ($def->getMethodCalls() as $call) { if ('addPath' === $call[0] && false === strpos($call[1][0], 'Form')) {