Passed
Pull Request — master (#29)
by Christoffer
02:26
created

SchemaBuilderProvider   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A register() 0 12 1
1
<?php
2
3
namespace Digia\GraphQL\Provider;
4
5
use Digia\GraphQL\Language\AST\Node\NamedTypeNode;
6
use Digia\GraphQL\Language\AST\Schema\DefinitionBuilder;
7
use Digia\GraphQL\Language\AST\Schema\DefinitionBuilderInterface;
8
use Digia\GraphQL\Language\AST\Schema\SchemaBuilder;
9
use Digia\GraphQL\Language\AST\Schema\SchemaBuilderInterface;
10
use League\Container\ServiceProvider\AbstractServiceProvider;
11
use Psr\SimpleCache\CacheInterface;
12
13
class SchemaBuilderProvider extends AbstractServiceProvider
14
{
15
16
    /**
17
     * @var array
18
     */
19
    protected $provides = [
20
        DefinitionBuilderInterface::class,
21
        SchemaBuilderInterface::class,
22
    ];
23
24
    /**
25
     * @inheritdoc
26
     */
27
    public function register()
28
    {
29
        $this->container->add(DefinitionBuilderInterface::class, DefinitionBuilder::class, true/* $shared */)
30
            ->withArguments([
31
                function (NamedTypeNode $node) {
32
                    throw new \Exception(sprintf('Type "%s" not found in document.', $node->getNameValue()));
33
                },
34
                CacheInterface::class,
35
            ]);
36
37
        $this->container->add(SchemaBuilderInterface::class, SchemaBuilder::class, true/* $shared */)
38
            ->withArgument(DefinitionBuilderInterface::class);
39
    }
40
}
41