Skip to content

Commit a29731f

Browse files
authored
Merge pull request #12 from moufmouf/master
Adapting bundle for v4.0
2 parents 56adf90 + 93ac60b commit a29731f

File tree

5 files changed

+32
-225
lines changed

5 files changed

+32
-225
lines changed

DependencyInjection/GraphqliteCompilerPass.php

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@
2323
use TheCodingMachine\GraphQLite\AnnotationReader;
2424
use TheCodingMachine\GraphQLite\Annotations\Mutation;
2525
use TheCodingMachine\GraphQLite\Annotations\Query;
26-
use TheCodingMachine\Graphqlite\Bundle\Mappers\ContainerFetcherTypeMapper;
2726
use TheCodingMachine\Graphqlite\Bundle\QueryProviders\ControllerQueryProvider;
27+
use TheCodingMachine\GraphQLite\FieldsBuilder;
2828
use TheCodingMachine\GraphQLite\FieldsBuilderFactory;
2929
use TheCodingMachine\GraphQLite\InputTypeGenerator;
3030
use TheCodingMachine\GraphQLite\InputTypeUtils;
31+
use TheCodingMachine\GraphQLite\Mappers\CompositeTypeMapper;
3132
use TheCodingMachine\GraphQLite\Mappers\GlobTypeMapper;
3233
use TheCodingMachine\GraphQLite\Mappers\RecursiveTypeMapperInterface;
34+
use TheCodingMachine\GraphQLite\Mappers\Root\CompositeRootTypeMapper;
3335
use TheCodingMachine\GraphQLite\Mappers\StaticTypeMapper;
3436
use TheCodingMachine\GraphQLite\NamingStrategy;
3537
use TheCodingMachine\GraphQLite\TypeGenerator;
@@ -130,8 +132,7 @@ public function process(ContainerBuilder $container)
130132
$queryProvider->setPrivate(true);
131133
$queryProvider->setFactory([self::class, 'createQueryProvider']);
132134
$queryProvider->addArgument(new Reference($id));
133-
$queryProvider->addArgument(new Reference(FieldsBuilderFactory::class));
134-
$queryProvider->addArgument(new Reference(RecursiveTypeMapperInterface::class));
135+
$queryProvider->addArgument(new Reference(FieldsBuilder::class));
135136
$queryProvider->addTag('graphql.queryprovider');
136137
$container->setDefinition($controllerIdentifier, $queryProvider);
137138
}
@@ -174,14 +175,22 @@ public function process(ContainerBuilder $container)
174175
$definition = $container->getDefinition(StaticTypeMapper::class);
175176
$definition->addMethodCall('setNotMappedTypes', [$customNotMappedTypes]);
176177
}
178+
179+
// Register type mappers
180+
$typeMapperServices = $container->findTaggedServiceIds('graphql.type_mapper');
181+
$compositeTypeMapper = $container->getDefinition(CompositeTypeMapper::class);
182+
foreach ($typeMapperServices as $id => $tags) {
183+
// add the transport service to the TransportChain service
184+
$compositeTypeMapper->addMethodCall('addTypeMapper', [new Reference($id)]);
185+
}
177186
}
178187

179188
/**
180189
* @param object $controller
181190
*/
182-
public static function createQueryProvider($controller, FieldsBuilderFactory $fieldsBuilderFactory, RecursiveTypeMapperInterface $recursiveTypeMapper): ControllerQueryProvider
191+
public static function createQueryProvider($controller, FieldsBuilder $fieldsBuilder): ControllerQueryProvider
183192
{
184-
return new ControllerQueryProvider($controller, $fieldsBuilderFactory->buildFieldsBuilder($recursiveTypeMapper));
193+
return new ControllerQueryProvider($controller, $fieldsBuilder);
185194
}
186195

187196
/**

Mappers/ContainerFetcherTypeMapper.php

Lines changed: 0 additions & 206 deletions
This file was deleted.

Resources/config/container/graphqlite.xml

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,21 @@
2323

2424
<service id="TheCodingMachine\GraphQLite\QueryProviderInterface" alias="TheCodingMachine\GraphQLite\AggregateQueryProvider" />
2525

26-
<service id="TheCodingMachine\GraphQLite\FieldsBuilderFactory" public="true" />
26+
<service id="TheCodingMachine\GraphQLite\Mappers\Root\CompositeRootTypeMapper">
27+
<argument type="tagged" tag="graphql.root_type_mapper" />
28+
</service>
29+
30+
<service id="TheCodingMachine\GraphQLite\Mappers\Root\RootTypeMapperInterface" alias="TheCodingMachine\GraphQLite\Mappers\Root\CompositeRootTypeMapper" />
31+
32+
<service id="TheCodingMachine\GraphQLite\Mappers\Root\MyCLabsEnumTypeMapper">
33+
<tag name="graphql.root_type_mapper" />
34+
</service>
35+
36+
<service id="TheCodingMachine\GraphQLite\Mappers\Root\BaseTypeMapper">
37+
<tag name="graphql.root_type_mapper" />
38+
</service>
39+
40+
<service id="TheCodingMachine\GraphQLite\FieldsBuilder" public="true" />
2741

2842
<service id="TheCodingMachine\GraphQLite\AnnotationReader" >
2943
<argument key="$mode">%graphqlite.annotations.error_mode%</argument>
@@ -71,15 +85,6 @@
7185
</call>
7286
</service>
7387

74-
<!-- <service id="TheCodingMachine\Graphqlite\Bundle\Mappers\ContainerFetcherTypeMapper">
75-
<argument type="service" id="service_container" />
76-
<argument type="collection" />
77-
<argument type="collection" />
78-
<argument type="collection" />
79-
80-
<tag name="graphql.type_mapper"/>
81-
</service> -->
82-
8388
<service id="TheCodingMachine\GraphQLite\Mappers\StaticTypeMapper">
8489
<tag name="graphql.type_mapper"/>
8590
</service>

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
],
1818
"require" : {
1919
"php" : ">=7.1",
20-
"thecodingmachine/graphqlite" : "~3.0.0",
20+
"thecodingmachine/graphqlite" : "~4.0.0",
2121
"symfony/framework-bundle": "^4.1.9",
2222
"doctrine/annotations": "^1.6",
2323
"doctrine/cache": "^1.8",
@@ -34,7 +34,7 @@
3434
"beberlei/porpaginas": "^1.2"
3535
},
3636
"scripts": {
37-
"phpstan": "phpstan analyse GraphqliteBundle.php DependencyInjection/ Controller/ Mappers/ Resources/ Security/ -c phpstan.neon --level=7 --no-progress"
37+
"phpstan": "phpstan analyse GraphqliteBundle.php DependencyInjection/ Controller/ Resources/ Security/ -c phpstan.neon --level=7 --no-progress"
3838
},
3939
"suggest": {
4040
"symfony/security-bundle": "To use @Logged or @Right annotations"
@@ -46,7 +46,7 @@
4646
},
4747
"extra": {
4848
"branch-alias": {
49-
"dev-master": "3.0.x-dev"
49+
"dev-master": "4.0.x-dev"
5050
}
5151
},
5252
"minimum-stability": "dev",

phpstan.neon

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
parameters:
22
ignoreErrors:
33
- "#Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition::children\\(\\)#"
4-
- "#Access to an undefined property GraphQL\\\\Type\\\\Definition\\\\NamedType&GraphQL\\\\Type\\\\Definition\\\\OutputType::\\$name.#"
54
#includes:
65
# - vendor/thecodingmachine/phpstan-strict-rules/phpstan-strict-rules.neon

0 commit comments

Comments
 (0)