Open
Description
Symfony version(s) affected
^5.3|^6.0|^7.0
Description
Creating decorator around a service with a AsTaggedItem
attribute should not change the expected behaviour of any locator or iterator created from it.
How to reproduce
#[AutoconfigureTag('tag')]
interface Tagged {}
#[AsTaggedItem('a')]
class A implements Tagged {}
#[AsDecorator(A::class)]
class Decorator implements Tagged {}
class Test {
public function __construct(#[TaggedLocator('tag')] ServiceProviderInterface $services) {
$services->get('a');
}
}
Possible Solution
PriorityTaggedServiceTrait
could unwrap services throughcontainer.decorator
AsTaggedItem
could be lifted as a tag that will then be cascaded to the decorator