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

ParserProvider   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 11 1
1
<?php
2
3
namespace Digia\GraphQL\Provider;
4
5
use Digia\GraphQL\Language\AST\Builder\NodeBuilder;
6
use Digia\GraphQL\Language\AST\Builder\NodeBuilderInterface;
7
use Digia\GraphQL\Language\AST\Builder\SupportedBuilders;
8
use Digia\GraphQL\Language\Lexer;
9
use Digia\GraphQL\Language\LexerInterface;
10
use Digia\GraphQL\Language\Parser;
11
use Digia\GraphQL\Language\ParserInterface;
12
use Digia\GraphQL\Language\Reader\SupportedReaders;
13
use League\Container\ServiceProvider\AbstractServiceProvider;
14
15
class ParserProvider extends AbstractServiceProvider
16
{
17
18
    /**
19
     * @var array
20
     */
21
    protected $provides = [
22
        NodeBuilderInterface::class,
23
        LexerInterface::class,
24
        ParserInterface::class,
25
    ];
26
27
    /**
28
     * @inheritdoc
29
     */
30
    public function register()
31
    {
32
        $this->container->add(NodeBuilderInterface::class, function () {
33
            return new NodeBuilder(SupportedBuilders::get());
34
        });
35
36
        $this->container->add(ParserInterface::class, Parser::class, true/* $shared */)
37
            ->withArgument(NodeBuilderInterface::class);
38
39
        $this->container->add(LexerInterface::class, function () {
40
            return new Lexer(SupportedReaders::get());
41
        });
42
    }
43
}
44