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

ConditionalTranslator::process()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 23
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 4

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 23
ccs 12
cts 12
cp 1
rs 9.8333
c 0
b 0
f 0
cc 4
nc 4
nop 1
crap 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