merge tags instead of completely replacing them
This commit is contained in:
parent
122ac67823
commit
c333eb70b6
@ -43,7 +43,7 @@ class DecoratorServicePass implements CompilerPassInterface
|
|||||||
$container->setAlias($renamedId, new Alias((string) $alias, false));
|
$container->setAlias($renamedId, new Alias((string) $alias, false));
|
||||||
} else {
|
} else {
|
||||||
$decoratedDefinition = $container->getDefinition($inner);
|
$decoratedDefinition = $container->getDefinition($inner);
|
||||||
$definition->setTags($decoratedDefinition->getTags(), $definition->getTags());
|
$definition->setTags(array_merge($decoratedDefinition->getTags(), $definition->getTags()));
|
||||||
$public = $decoratedDefinition->isPublic();
|
$public = $decoratedDefinition->isPublic();
|
||||||
$decoratedDefinition->setPublic(false);
|
$decoratedDefinition->setPublic(false);
|
||||||
$decoratedDefinition->setTags(array());
|
$decoratedDefinition->setTags(array());
|
||||||
|
@ -87,17 +87,18 @@ class DecoratorServicePassTest extends \PHPUnit_Framework_TestCase
|
|||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
$container
|
$container
|
||||||
->register('foo')
|
->register('foo')
|
||||||
->setTags(array('name' => 'bar'))
|
->setTags(array('bar' => array('attr' => 'baz')))
|
||||||
;
|
;
|
||||||
$container
|
$container
|
||||||
->register('baz')
|
->register('baz')
|
||||||
|
->setTags(array('foobar' => array('attr' => 'bar')))
|
||||||
->setDecoratedService('foo')
|
->setDecoratedService('foo')
|
||||||
;
|
;
|
||||||
|
|
||||||
$this->process($container);
|
$this->process($container);
|
||||||
|
|
||||||
$this->assertEmpty($container->getDefinition('baz.inner')->getTags());
|
$this->assertEmpty($container->getDefinition('baz.inner')->getTags());
|
||||||
$this->assertEquals(array('name' => 'bar'), $container->getDefinition('baz')->getTags());
|
$this->assertEquals(array('bar' => array('attr' => 'baz'), 'foobar' => array('attr' => 'bar')), $container->getDefinition('baz')->getTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function process(ContainerBuilder $container)
|
protected function process(ContainerBuilder $container)
|
||||||
|
Reference in New Issue
Block a user