File tree Expand file tree Collapse file tree 3 files changed +43
-5
lines changed
DependencyInjection/Compiler Expand file tree Collapse file tree 3 files changed +43
-5
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Overblog \GraphQLBundle \Definition \Builder ;
4+
5+ use GraphQL \Type \Definition \Type ;
6+ use Overblog \GraphQLBundle \Definition \ConfigProcessor ;
7+ use Overblog \GraphQLBundle \Definition \GlobalVariables ;
8+
9+ final class TypeFactory
10+ {
11+ /** @var ConfigProcessor */
12+ private $ configProcessor ;
13+ /** @var GlobalVariables */
14+ private $ globalVariables ;
15+
16+ public function __construct (ConfigProcessor $ configProcessor , GlobalVariables $ globalVariables )
17+ {
18+ $ this ->configProcessor = $ configProcessor ;
19+ $ this ->globalVariables = $ globalVariables ;
20+ }
21+
22+ /**
23+ * @param string $class
24+ *
25+ * @return Type
26+ */
27+ public function create ($ class )
28+ {
29+ return new $ class ($ this ->configProcessor , $ this ->globalVariables );
30+ }
31+ }
Original file line number Diff line number Diff line change 22
33namespace Overblog \GraphQLBundle \DependencyInjection \Compiler ;
44
5- use Overblog \GraphQLBundle \Definition \ConfigProcessor ;
6- use Overblog \GraphQLBundle \Definition \GlobalVariables ;
5+ use GraphQL \Type \Definition \Type ;
76use Overblog \GraphQLBundle \Generator \TypeGenerator ;
87use Symfony \Component \DependencyInjection \Compiler \CompilerPassInterface ;
98use Symfony \Component \DependencyInjection \ContainerBuilder ;
@@ -25,9 +24,10 @@ public function process(ContainerBuilder $container)
2524
2625 private function setTypeServiceDefinition (ContainerBuilder $ container , $ class , $ alias )
2726 {
28- $ definition = $ container ->setDefinition ($ class , new Definition ($ class ));
27+ $ definition = $ container ->setDefinition ($ class , new Definition (Type::class));
28+ $ definition ->setFactory ([new Reference ('overblog_graphql.type_factory ' ), 'create ' ]);
2929 $ definition ->setPublic (false );
30- $ definition ->setArguments ([new Reference (ConfigProcessor:: class), new Reference (GlobalVariables::class) ]);
30+ $ definition ->setArguments ([$ class ]);
3131 $ definition ->addTag (TypeTaggedServiceMappingPass::TAG_NAME , ['alias ' => $ alias , 'generated ' => true ]);
3232 }
3333}
Original file line number Diff line number Diff line change @@ -35,6 +35,13 @@ services:
3535 - " @overblog_graphql.type_resolver"
3636 - false
3737
38+ overblog_graphql.type_factory :
39+ class : Overblog\GraphQLBundle\Definition\Builder\TypeFactory
40+ public : false
41+ arguments :
42+ - ' @Overblog\GraphQLBundle\Definition\ConfigProcessor'
43+ - ' @Overblog\GraphQLBundle\Definition\GlobalVariables'
44+
3845 overblog_graphql.type_resolver :
3946 class : Overblog\GraphQLBundle\Resolver\TypeResolver
4047 public : true
@@ -121,7 +128,7 @@ services:
121128 - " @overblog_graphql.request_parser"
122129 - " %overblog_graphql.handle_cors%"
123130 - " %overblog_graphql.batching_method%"
124-
131+
125132 Overblog\GraphQLBundle\Controller\GraphController :
126133 public : true
127134 alias : ' overblog_graphql.controller.graphql'
You can’t perform that action at this time.
0 commit comments