bug #32722 [DependencyInjection] Fix bindings and tagged_locator (deguif)
This PR was merged into the 4.3 branch.
Discussion
----------
[DependencyInjection] Fix bindings and tagged_locator
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR |
Working `tagged_locator`
```yaml
App\XXX:
arguments:
$taggedLocator: !tagged_locator { tag: 'my_tag', index_by: 'my_key' }
```
Not working `tagged_locator`
```yaml
App\XXX:
bind:
$taggedLocator: !tagged_locator { tag: 'my_tag', index_by: 'my_key' }
```
Currently `ResolveBindingsPass` is executed after `ServiceLocatorTagPass`, which produces empty service locators when using `bind`.
I'm proposing to change the optimization passes order, so that this issue is solved.
I'm not confident with the impact, so let's discuss about it.
Commits
-------
bf4c713ad7
Fix bindings and tagged_locator
This commit is contained in:
commit
79420828d2
@ -51,15 +51,15 @@ class PassConfig
|
|||||||
$this->optimizationPasses = [[
|
$this->optimizationPasses = [[
|
||||||
new ValidateEnvPlaceholdersPass(),
|
new ValidateEnvPlaceholdersPass(),
|
||||||
new ResolveChildDefinitionsPass(),
|
new ResolveChildDefinitionsPass(),
|
||||||
new ServiceLocatorTagPass(),
|
|
||||||
new RegisterServiceSubscribersPass(),
|
new RegisterServiceSubscribersPass(),
|
||||||
new DecoratorServicePass(),
|
new DecoratorServicePass(),
|
||||||
new ResolveParameterPlaceHoldersPass(false),
|
new ResolveParameterPlaceHoldersPass(false),
|
||||||
new ResolveFactoryClassPass(),
|
new ResolveFactoryClassPass(),
|
||||||
new CheckDefinitionValidityPass(),
|
|
||||||
new ResolveNamedArgumentsPass(),
|
new ResolveNamedArgumentsPass(),
|
||||||
new AutowireRequiredMethodsPass(),
|
new AutowireRequiredMethodsPass(),
|
||||||
new ResolveBindingsPass(),
|
new ResolveBindingsPass(),
|
||||||
|
new ServiceLocatorTagPass(),
|
||||||
|
new CheckDefinitionValidityPass(),
|
||||||
new AutowirePass(false),
|
new AutowirePass(false),
|
||||||
new ResolveTaggedIteratorArgumentPass(),
|
new ResolveTaggedIteratorArgumentPass(),
|
||||||
new ResolveServiceSubscribersPass(),
|
new ResolveServiceSubscribersPass(),
|
||||||
|
Reference in New Issue
Block a user