Skip to content

Commit b81c176

Browse files
committed
Merge branch '2.7' into 2.8
* 2.7: [TwigBridge] removed deprecations added in Twig 1.27 PHP CS Fixer: use php_unit_dedicate_assert fixed Filesystem:makePathRelative and added 2 more testcases no 304 response if method is not cacheable move tags from decorated to decorating service
2 parents 7bc01cf + 74f40ce commit b81c176

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

Compiler/DecoratorServicePass.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,12 @@ public function process(ContainerBuilder $container)
5252
$public = $alias->isPublic();
5353
$container->setAlias($renamedId, new Alias((string) $alias, false));
5454
} else {
55-
$definition = $container->getDefinition($inner);
56-
$public = $definition->isPublic();
57-
$definition->setPublic(false);
58-
$container->setDefinition($renamedId, $definition);
55+
$decoratedDefinition = $container->getDefinition($inner);
56+
$definition->setTags($decoratedDefinition->getTags(), $definition->getTags());
57+
$public = $decoratedDefinition->isPublic();
58+
$decoratedDefinition->setPublic(false);
59+
$decoratedDefinition->setTags(array());
60+
$container->setDefinition($renamedId, $decoratedDefinition);
5961
}
6062

6163
$container->setAlias($inner, new Alias($id, $public));

Tests/Compiler/DecoratorServicePassTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,24 @@ public function testProcessWithPriority()
124124
$this->assertNull($quxDefinition->getDecoratedService());
125125
}
126126

127+
public function testProcessMovesTagsFromDecoratedDefinitionToDecoratingDefinition()
128+
{
129+
$container = new ContainerBuilder();
130+
$container
131+
->register('foo')
132+
->setTags(array('name' => 'bar'))
133+
;
134+
$container
135+
->register('baz')
136+
->setDecoratedService('foo')
137+
;
138+
139+
$this->process($container);
140+
141+
$this->assertEmpty($container->getDefinition('baz.inner')->getTags());
142+
$this->assertEquals(array('name' => 'bar'), $container->getDefinition('baz')->getTags());
143+
}
144+
127145
protected function process(ContainerBuilder $container)
128146
{
129147
$repeatedPass = new DecoratorServicePass();

0 commit comments

Comments
 (0)