PheatureFlagsExtension::loadInternal()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 9
c 2
b 0
f 0
dl 0
loc 12
ccs 0
cts 9
cp 0
rs 9.9666
cc 1
nc 1
nop 2
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Pheature\Community\Symfony\DependencyInjection;
6
7
use Doctrine\DBAL\Connection;
8
use Pheature\Core\Toggle\Read\ChainToggleStrategyFactory;
9
use Pheature\Core\Toggle\Read\FeatureFinder;
10
use Pheature\Core\Toggle\Read\Toggle;
11
use Pheature\Crud\Psr11\Toggle\FeatureFinderFactory;
12
use Pheature\Crud\Psr11\Toggle\ToggleConfig;
13
use Pheature\InMemory\Toggle\InMemoryFeatureFactory;
14
use Symfony\Component\DependencyInjection\ContainerBuilder;
15
use Symfony\Component\DependencyInjection\Reference;
16
use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension;
17
18
final class PheatureFlagsExtension extends ConfigurableExtension
19
{
20
    /**
21
     * @param array<mixed> $mergedConfig
22
     * @param ContainerBuilder $container
23
     */
24
    protected function loadInternal(array $mergedConfig, ContainerBuilder $container): void
25
    {
26
        $container->register(ToggleConfig::class, ToggleConfig::class)
27
            ->setAutowired(false)
28
            ->setLazy(true)
29
            ->addArgument($mergedConfig);
30
31
        $container->register(Toggle::class, Toggle::class)
32
            ->setAutowired(false)
33
            ->setLazy(true)
34
            ->addArgument(
35
                new Reference(FeatureFinder::class)
36
            )
37
        ;
38
    }
39
}
40