Passed
Push — master ( e37ab6...297052 )
by Koldo
02:10
created

ConditionalTranslator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 91.67%

Importance

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

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 1
    public function process(array &$symfonyService): array
16
    {
17 1
        $conditionals = [];
18
19 1
        foreach ($symfonyService['services'] ?? [] as $name => $service) {
20 1
            if (!is_array($service)) {
21
                continue;
22
            }
23
24 1
            if (array_key_exists('arguments', $service)) {
25 1
                $arguments = (new ParseArguments())->process($symfonyService, $service);
26 1
                $conditionals[$name] = [
27 1
                    'class' => $service['class'] ?? $name,
28 1
                    'arguments' => $arguments,
29
                ];
30
31 1
                unset($symfonyService['services'][$name]);
32
            }
33
        }
34
35
        return [
36
            'dependencies' => [
37 1
                'conditionals' => $conditionals
38
            ]
39
        ];
40
    }
41
}
42