Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1c70edd

Browse files
committed
Fix Templating Engine autowiring
1 parent fa01e84 commit 1c70edd

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
2828
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
2929
use Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer;
30+
use Symfony\Component\Templating\EngineInterface;
31+
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface as FrameworkBundleEngineInterface;
3032
use Symfony\Component\Validator\Validation;
3133

3234
/**
@@ -519,14 +521,17 @@ private function registerTemplatingConfiguration(array $config, $ide, ContainerB
519521

520522
// Use a delegation unless only a single engine was registered
521523
if (1 === count($engines)) {
522-
$container->setAlias('templating', (string) reset($engines));
524+
$aliased = (string) reset($engines);
523525
} else {
524526
foreach ($engines as $engine) {
525527
$container->getDefinition('templating.engine.delegating')->addMethodCall('addEngine', array($engine));
526528
}
527-
$container->setAlias('templating', 'templating.engine.delegating');
529+
530+
$aliased = 'templating.engine.delegating';
528531
}
529532

533+
$container->setAlias('templating', $aliased);
534+
530535
$container->getDefinition('fragment.renderer.hinclude')
531536
->addTag('kernel.fragment_renderer', array('alias' => 'hinclude'))
532537
->replaceArgument(0, new Reference('templating'))
@@ -557,6 +562,9 @@ private function registerTemplatingConfiguration(array $config, $ide, ContainerB
557562
$container->removeDefinition('templating.helper.assets');
558563
}
559564
}
565+
566+
$definition = $container->getDefinition($aliased);
567+
$definition->setAutowiringTypes(array(EngineInterface::class, FrameworkBundleEngineInterface::class));
560568
}
561569

562570
/**

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
<service id="templating.engine.delegating" class="Symfony\Bundle\FrameworkBundle\Templating\DelegatingEngine" public="false">
99
<argument type="service" id="service_container" />
1010
<argument type="collection" /> <!-- engines -->
11-
12-
<autowiring-type>Symfony\Component\Templating\EngineInterface</autowiring-type>
13-
<autowiring-type>Symfony\Bundle\FrameworkBundle\Templating\EngineInterface</autowiring-type>
1411
</service>
1512

1613
<service id="templating.name_parser" class="Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser">

src/Symfony/Bundle/FrameworkBundle/Tests/Functional/AutowiringTypesTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313

1414
use Doctrine\Common\Annotations\AnnotationReader;
1515
use Doctrine\Common\Annotations\CachedReader;
16-
use Symfony\Bundle\FrameworkBundle\Templating\DelegatingEngine;
16+
use Symfony\Component\Templating\EngineInterface;
17+
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface as FrameworkBundleEngineInterface;
1718

1819
class AutowiringTypesTest extends WebTestCase
1920
{
@@ -41,8 +42,8 @@ public function testTemplatingAutowiring()
4142
$container = static::$kernel->getContainer();
4243

4344
$autowiredServices = $container->get('test.autowiring_types.autowired_services');
44-
$this->assertInstanceOf(DelegatingEngine::class, $autowiredServices->getFrameworkBundleEngine());
45-
$this->assertInstanceOf(DelegatingEngine::class, $autowiredServices->getEngine());
45+
$this->assertInstanceOf(FrameworkBundleEngineInterface::class, $autowiredServices->getFrameworkBundleEngine());
46+
$this->assertInstanceOf(EngineInterface::class, $autowiredServices->getEngine());
4647
}
4748

4849
protected static function createKernel(array $options = array())

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@
5959
<argument type="service" id="twig" />
6060
<argument type="service" id="templating.name_parser" />
6161
<argument type="service" id="templating.locator" />
62-
63-
<autowiring-type>Symfony\Component\Templating\EngineInterface</autowiring-type>
64-
<autowiring-type>Symfony\Bundle\FrameworkBundle\Templating\EngineInterface</autowiring-type>
6562
</service>
6663

6764
<service id="twig.extension.profiler" class="Symfony\Bridge\Twig\Extension\ProfilerExtension" public="false">

0 commit comments

Comments
 (0)