Skip to content

Commit dd699f6

Browse files
committed
Merge branch '1.1.x'
Conflicts: composer.json
2 parents 471ad25 + 520d4d9 commit dd699f6

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

DependencyInjection/Compiler/AddTemplatePathPass.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,21 @@ class AddTemplatePathPass implements CompilerPassInterface
1313
{
1414
public function process(ContainerBuilder $container)
1515
{
16-
if (!$container->hasDefinition('twig.loader')) {
16+
$loaderDefinition = null;
17+
18+
if ($container->hasDefinition('twig.loader.filesystem')) {
19+
$loaderDefinition = $container->getDefinition('twig.loader.filesystem');
20+
} elseif ($container->hasDefinition('twig.loader')) {
21+
// Symfony 2.0 and 2.1 were not using an alias for the filesystem loader
22+
$loaderDefinition = $container->getDefinition('twig.loader');
23+
}
24+
25+
if (null === $loaderDefinition) {
1726
return;
1827
}
28+
1929
$refl = new \ReflectionClass('Knp\Menu\ItemInterface');
2030
$path = dirname($refl->getFileName()).'/Resources/views';
21-
$container->getDefinition('twig.loader')->addMethodCall('addPath', array($path));
31+
$loaderDefinition->addMethodCall('addPath', array($path));
2232
}
2333
}

Tests/DependencyInjection/Compiler/AddTemplatePathPassTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,28 @@ public function testProcess()
3333
$containerBuilderMock->expects($this->once())
3434
->method('hasDefinition')
3535
->will($this->returnValue(true));
36+
$containerBuilderMock->expects($this->once())
37+
->method('getDefinition')
38+
->with($this->equalTo('twig.loader.filesystem'))
39+
->will($this->returnValue($definitionMock));
40+
41+
$templatePathPass = new AddTemplatePathPass();
42+
$templatePathPass->process($containerBuilderMock);
43+
}
44+
45+
public function testProcessLegacy()
46+
{
47+
$definitionMock = $this->getMockBuilder('Symfony\Component\DependencyInjection\Definition')
48+
->disableOriginalConstructor()
49+
->getMock();
50+
$definitionMock->expects($this->once())
51+
->method('addMethodCall')
52+
->with($this->equalTo('addPath'), $this->isType('array'));
53+
54+
$containerBuilderMock = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder');
55+
$containerBuilderMock->expects($this->exactly(2))
56+
->method('hasDefinition')
57+
->will($this->onConsecutiveCalls(false, true));
3658
$containerBuilderMock->expects($this->once())
3759
->method('getDefinition')
3860
->with($this->equalTo('twig.loader'))

0 commit comments

Comments
 (0)