Skip to content

Commit 22a980c

Browse files
committed
Register autoconfiguration for bundle classes
For classes `Type`, `ResolverInterface` and `MutationInterface` closed overblog#439
1 parent 56a01b4 commit 22a980c

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

docs/definitions/resolver.md

+2-5
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,8 @@ Here an example of how this can be done with DI `autoconfigure`:
175175

176176
```yaml
177177
services:
178-
_instanceof:
179-
Overblog\GraphQLBundle\Definition\Resolver\ResolverInterface:
180-
tags: ['overblog_graphql.resolver']
181-
Overblog\GraphQLBundle\Definition\Resolver\MutationInterface:
182-
tags: ['overblog_graphql.mutation']
178+
_defaults:
179+
autoconfigure: true
183180
184181
Overblog\GraphQLBundle\GraphQL\Relay\:
185182
resource: ../../GraphQL/Relay/{Mutation,Node}

docs/definitions/type-system/index.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,8 @@ Types can be define 3 different ways:
7272

7373
```yaml
7474
services:
75-
_instanceof:
76-
GraphQL\Type\Definition\Type:
77-
tags: ['overblog_graphql.type']
75+
_defaults:
76+
autoconfigure: true
7877
7978
App\Type\:
8079
resource: '../src/Type'

src/DependencyInjection/OverblogGraphQLExtension.php

+14
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55
namespace Overblog\GraphQLBundle\DependencyInjection;
66

77
use GraphQL\Error\UserError;
8+
use GraphQL\Type\Definition\Type;
89
use GraphQL\Type\Schema;
910
use Overblog\GraphQLBundle\CacheWarmer\CompileCacheWarmer;
1011
use Overblog\GraphQLBundle\Config\Processor\BuilderProcessor;
1112
use Overblog\GraphQLBundle\Definition\Builder\SchemaBuilder;
13+
use Overblog\GraphQLBundle\Definition\Resolver\MutationInterface;
14+
use Overblog\GraphQLBundle\Definition\Resolver\ResolverInterface;
1215
use Overblog\GraphQLBundle\Error\ErrorHandler;
1316
use Overblog\GraphQLBundle\Error\UserWarning;
1417
use Overblog\GraphQLBundle\Event\Events;
@@ -45,6 +48,7 @@ public function load(array $configs, ContainerBuilder $container): void
4548
$this->setDefinitionParameters($config, $container);
4649
$this->setClassLoaderListener($config, $container);
4750
$this->setCompilerCacheWarmer($config, $container);
51+
$this->registerForAutoconfiguration($container);
4852

4953
$container->setParameter($this->getAlias().'.config', $config);
5054
$container->setParameter($this->getAlias().'.resources_dir', \realpath(__DIR__.'/../Resources'));
@@ -76,6 +80,16 @@ private function loadConfigFiles(ContainerBuilder $container): void
7680
$loader->load('aliases.yaml');
7781
}
7882

83+
private function registerForAutoconfiguration(ContainerBuilder $container): void
84+
{
85+
$container->registerForAutoconfiguration(MutationInterface::class)
86+
->addTag('overblog_graphql.mutation');
87+
$container->registerForAutoconfiguration(ResolverInterface::class)
88+
->addTag('overblog_graphql.resolver');
89+
$container->registerForAutoconfiguration(Type::class)
90+
->addTag('overblog_graphql.type');
91+
}
92+
7993
private function setCompilerCacheWarmer(array $config, ContainerBuilder $container): void
8094
{
8195
$definition = $container->setDefinition(

src/Resources/config/graphql_resolvers.yaml

+1-6
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@ services:
22
_defaults:
33
autowire: true
44
public: true
5-
6-
_instanceof:
7-
Overblog\GraphQLBundle\Definition\Resolver\ResolverInterface:
8-
tags: ['overblog_graphql.resolver']
9-
Overblog\GraphQLBundle\Definition\Resolver\MutationInterface:
10-
tags: ['overblog_graphql.mutation']
5+
autoconfigure: true
116

127
Overblog\GraphQLBundle\GraphQL\Relay\:
138
resource: ../../GraphQL/Relay/{Mutation,Node}

0 commit comments

Comments
 (0)