Failed Conditions
Push — master ( 4b5d02...3af7eb )
by Florent
04:35
created

ClientSource::name()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * The MIT License (MIT)
7
 *
8
 * Copyright (c) 2014-2017 Spomky-Labs
9
 *
10
 * This software may be modified and distributed under the terms
11
 * of the MIT license.  See the LICENSE file for details.
12
 */
13
14
namespace OAuth2Framework\Bundle\Server\DependencyInjection\Source;
15
16
use Fluent\PhpConfigFileLoader;
17
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
18
use Symfony\Component\Config\FileLocator;
19
use Symfony\Component\DependencyInjection\ContainerBuilder;
20
21
final class ClientSource extends ArraySource
22
{
23
    /**
24
     * {@inheritdoc}
25
     */
26
    protected function name(): string
27
    {
28
        return 'client';
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34
    protected function continueLoading(string $path, ContainerBuilder $container, array $config)
35
    {
36
        $container->setAlias($path.'.event_store', $config['event_store']);
37
38
        $loader = new PhpConfigFileLoader($container, new FileLocator(__DIR__.'/../../Resources/config'));
39
        $loader->load('client.php');
40
    }
41
42
    /**
43
     * {@inheritdoc}
44
     */
45
    protected function continueConfiguration(NodeDefinition $node)
46
    {
47
        parent::continueConfiguration($node);
48
        $node
49
            ->validate()
50
                ->ifTrue(function ($config) {
51
                    return empty($config['event_store']);
52
                })
53
                ->thenInvalid('The option "event_store" must be set.')
54
            ->end()
55
            ->children()
56
                ->scalarNode('event_store')->defaultNull()->end()
57
            ->end();
58
    }
59
}
60