Passed
Push — master ( 40a4c6...6a0114 )
by Koldo
02:21
created

ConditionalTranslator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
eloc 13
dl 0
loc 26
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 23 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Antidot\SymfonyConfigTranslator;
6
7
use function array_key_exists;
8
use function is_array;
9
use function str_replace;
10
use function strpos;
11
12
class ConditionalTranslator
13
{
14
15 3
    public function process(array &$symfonyService): array
16
    {
17 3
        $conditionals = [];
18
19 3
        foreach ($symfonyService['services'] ?? [] as $name => $service) {
20 3
            if (!is_array($service)) {
21 1
                continue;
22
            }
23
24 2
            if (array_key_exists('arguments', $service)) {
25 2
                $arguments = (new ArgumentTranslator())->process($symfonyService, $service);
26 2
                $conditionals[$name] = [
27 2
                    'class' => $service['class'] ?? $name,
28 2
                    'arguments' => $arguments,
29
                ];
30
31 2
                unset($symfonyService['services'][$name]);
32
            }
33
        }
34
35
        return [
36
            'dependencies' => [
37 3
                'conditionals' => $conditionals
38
            ]
39
        ];
40
    }
41
}
42