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

ConditionalTranslator::process()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 23
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 4.0092

Importance

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