8000 bug #21205 [TwigBundle] fixed usage when Templating is not installed … · symfony/symfony@6bd7840 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6bd7840

Browse files
committed
bug #21205 [TwigBundle] fixed usage when Templating is not installed (fabpot)
This PR was merged into the 2.7 branch. Discussion ---------- [TwigBundle] fixed usage when Templating is not installed | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | bug introduced in #20799 | License | MIT | Doc PR | n/a In #20799, the decoupling of the Templating definition means that the `twig.loader.filesystem` is not always defined, but used in Extension. So, this PR does the opposite as what was done before. Use `twig.loader.native_filesystem` by default and copy paths to `twig.loader.filesystem` when templating is used. /cc @xabbuh Commits ------- 6aa98d1 [TwigBundle] fixed usage when Templating is not installed
2 parents 23294e5 + 6aa98d1 commit 6bd7840

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function process(ContainerBuilder $container)
4545
if ($container->has('form.extension')) {
4646
$container->getDefinition('twig.extension.form')->addTag('twig.extension');
4747
$reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension');
48-
$container->getDefinition('twig.loader.filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form'));
48+
$container->getDefinition('twig.loader.native_filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form'));
4949
}
5050

5151
if ($container->has('fragment.handler')) {
@@ -88,11 +88,13 @@ public function process(ContainerBuilder $container)
8888
$container->getDefinition('twig.extension.debug')->addTag('twig.extension');
8989
}
9090

91-
if (!$container->has('templating')) {
92-
$loader = $container->getDefinition('twig.loader.native_filesystem');
93-
$loader->addTag('twig.loader');
94-
$loader->setMethodCalls($container->getDefinition('twig.loader.filesystem')->getMethodCalls());
91+
$twigLoader = $container->getDefinition('twig.loader.native_filesystem');
92+
if ($container->has('templating')) {
93+
$loader = $container->getDefinition('twig.loader.filesystem');
94+
$loader->setMethodCalls($twigLoader->getMethodCalls());
9595

96+
$twigLoader->clearTag('twig.loader');
97+
} else {
9698
$container->setAlias('twig.loader.filesystem', new Alias('twig.loader.native_filesystem', false));
9799
}
98100

src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public function load(array $configs, ContainerBuilder $container)
7777
$envConfiguratorDefinition->replaceArgument(4, $config['number_format']['decimal_point']);
7878
$envConfiguratorDefinition->replaceArgument(5, $config['number_format']['thousands_separator']);
7979

80-
$twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.filesystem');
80+
$twigFilesystemLoaderDefinition = $container->getDefinition('twig.loader.native_filesystem');
8181

8282
// register user-configured paths
8383
foreach ($config['paths'] as $path => $namespace) {

src/Symfony/Bundle/TwigBundle/Resources/config/templating.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
<tag name="twig.loader"/>
1111
</service>
1212

13-
<service id="twig.loader" alias="twig.loader.filesystem" />
14-
1513
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
1614
<argument type="service" id="twig" />
1715
<argument type="service" id="templating.name_parser" />

src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353

5454
<service id="twig.loader.native_filesystem" class="Twig_Loader_Filesystem" public="false">
5555
<argument type="collection" />
56+
<tag name="twig.loader"/>
5657
</service>
5758

5859
<service id="twig.loader.chain" class="%twig.loader.chain.class%" public="false"/>

src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public function testTwigLoaderPaths($format)
187187
$this->loadFromFile($container, 'extra', $format);
188188
$this->compileContainer($container);
189189

190-
$def = $container->getDefinition('twig.loader.filesystem');
190+
$def = $container->getDefinition('twig.loader.native_filesystem');
191191
$paths = array();
192192
foreach ($def->getMethodCalls() as $call) {
193193
if ('addPath' === $call[0] && false === strpos($call[1][0], 'Form')) {

0 commit comments

Comments
 (0)
0