DX: use tags iterator to inject aggregators, filters and export during ExportManager's construct

Squashed commit of the following:

commit dc2bbc8f4da24549a1d42feb3b453af9f79ab2ff
Author: Julien Fastré <julien.fastre@champs-libres.coop>
Date:   Tue Oct 18 10:40:14 2022 +0200

    Fixes: remove iterator_to_array on formatter, which causes a PHP crashes

commit 4ce56a01a7
Author: Julien Fastré <julien.fastre@champs-libres.coop>
Date:   Mon Oct 17 17:41:14 2022 +0200

    DX: use tags and dependency injection to build ExportManager
This commit is contained in:
2022-10-18 10:42:37 +02:00
parent a5c7934b76
commit a7ade9dac4
4 changed files with 35 additions and 166 deletions

View File

@@ -90,6 +90,14 @@ services:
Chill\MainBundle\Export\ExportManager:
autoconfigure: true
autowire: true
arguments:
$exports: !tagged_iterator { tag: chill.export, index_by: alias }
$aggregators: !tagged_iterator { tag: chill.export_aggregator, index_by: alias }
$filters: !tagged_iterator { tag: chill.export_filter, index_by: alias }
# for an unknown reason, iterator_to_array($formatter) cause a segmentation fault error (php-fpm code 11). removed temporarily
# $formatters: !tagged_iterator { tag: chill.export_formatter, index_by: alias }
# remove until we can properly test it
# $exportElementProvider: !tagged_iterator { tag: chill.export_elements_provider, index_by: prefix }
Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface: '@Chill\MainBundle\Security\Resolver\CenterResolverDispatcher'