Skip to content

Commit 92e9d0f

Browse files
committed
Merge branch '2.8' into 3.1
* 2.8: [TwigBridge] removed deprecations added in Twig 1.27 PHP CS Fixer: use php_unit_dedicate_assert 3.0 Upgrade Guide: Added details describing how to pass data to a form through the options resolver 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 0b1e1c4 + b81c176 commit 92e9d0f

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
@@ -51,10 +51,12 @@ public function process(ContainerBuilder $container)
5151
$public = $alias->isPublic();
5252
$container->setAlias($renamedId, new Alias((string) $alias, false));
5353
} else {
54-
$definition = $container->getDefinition($inner);
55-
$public = $definition->isPublic();
56-
$definition->setPublic(false);
57-
$container->setDefinition($renamedId, $definition);
54+
$decoratedDefinition = $container->getDefinition($inner);
55+
$definition->setTags($decoratedDefinition->getTags(), $definition->getTags());
56+
$public = $decoratedDefinition->isPublic();
57+
$decoratedDefinition->setPublic(false);
58+
$decoratedDefinition->setTags(array());
59+
$container->setDefinition($renamedId, $decoratedDefinition);
5860
}
5961

6062
$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)