File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Resources/config/container Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change 1717use Symfony \Component \Cache \Adapter \ApcuAdapter ;
1818use Symfony \Component \Cache \Adapter \PhpFilesAdapter ;
1919use Symfony \Component \Cache \Psr16Cache ;
20+ use Symfony \Component \DependencyInjection \Argument \ServiceLocatorArgument ;
2021use Symfony \Component \DependencyInjection \Compiler \CompilerPassInterface ;
2122use Symfony \Component \DependencyInjection \ContainerBuilder ;
2223use Symfony \Component \DependencyInjection \Definition ;
@@ -297,12 +298,21 @@ public function process(ContainerBuilder $container): void
297298 private function registerController (string $ controllerClassName , ContainerBuilder $ container ): void
298299 {
299300 $ aggregateQueryProvider = $ container ->findDefinition (AggregateControllerQueryProviderFactory::class);
301+
300302 $ controllersList = $ aggregateQueryProvider ->getArgument (0 );
301303 if (!is_array ($ controllersList )){
302304 throw new GraphQLException (sprintf ('Expecting array in %s, arg #1 ' , AggregateControllerQueryProviderFactory::class));
303305 }
306+
304307 $ controllersList [] = $ controllerClassName ;
305308 $ aggregateQueryProvider ->setArgument (0 , $ controllersList );
309+
310+ $ serviceLocatorMap = [];
311+ foreach ($ controllersList as $ controller ) {
312+ $ serviceLocatorMap [$ controller ] = new Reference ($ controller );
313+ }
314+
315+ $ aggregateQueryProvider ->setArgument (1 , new ServiceLocatorArgument ($ serviceLocatorMap ));
306316 }
307317
308318 /**
Original file line number Diff line number Diff line change 2626 </service >
2727
2828 <service id =" TheCodingMachine\GraphQLite\AggregateControllerQueryProviderFactory" >
29+ <!-- Controller classes list will be generated by compiler pass -->
2930 <argument type =" collection" >
3031 </argument >
31- <argument type =" service" id =" service_container" >
32+ <!-- Service locator will be generated by compiler pass -->
33+ <argument type =" service_locator" >
3234 </argument >
35+
3336 <tag name =" graphql.queryprovider_factory" />
3437 </service >
3538
You can’t perform that action at this time.
0 commit comments