Skip to content

4.2.2 release changed the way tagged service are injected #29836

Closed
@lyrixx

Description

@lyrixx

Symfony version(s) affected: 4.2.2

Description
The framework changed the way tagged service are injected

How to reproduce
We are using API Platform, and it uses the following code:

        <service id="api_platform.subresource_data_provider" class="ApiPlatform\Core\DataProvider\ChainSubresourceDataProvider">
            <argument type="tagged" tag="api_platform.subresource_data_provider" />
        </service>

https://github.com/api-platform/core/blob/c20b86cfa6def8f1921dd7e02280d283fcd80e8a/src/Bridge/Symfony/Bundle/Resources/config/data_provider.xml#L25-L27

On 4.2.1 when I dump the injected service I have:

array:6 [▼
  0 => AggregatedLogDataProvider {#854 ▶}
  # ....
  5 => CollectionDataProvider {#1117 ▶}
]
array:6 [▼
  0 => CollectionDataProvider {#6297 ▶}
  1 => AggregatedLogDataProvider {#1071 ▶}
  # ...
]

Note: CollectionDataProvider is the default Data Provider from API Platform, and AggregatedLogDataProvider, #... are my Data Provider

Possible Solution

Patch all third party relying on this feature or fix Symfony.
Note: I tried to change the priority of the default Data Provider in APIP, and it fixes my issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions