ConditionalTranslator   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 91.67%

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 23 5
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
10
class ConditionalTranslator
11
{
12
13 6
    public function process(array &$symfonyService): array
14
    {
15 6
        $conditionals = [];
16
17 6
        foreach ($symfonyService['services'] ?? [] as $name => $service) {
18 6
            if (!is_array($service) || array_key_exists('factory', $service)) {
19 4
                continue;
20
            }
21
22 5
            if (array_key_exists('arguments', $service)) {
23 5
                $arguments = (new ArgumentTranslator())->process($symfonyService, $service);
24
                $conditionals[$name] = [
25 5
                    'class' => $service['class'] ?? $name,
26 5
                    'arguments' => $arguments,
27
                ];
28
29 5
                unset($symfonyService['services'][$name]);
30
            }
31
        }
32
33
        return [
34
            'dependencies' => [
35 6
                'services' => $conditionals,
36
            ]
37
        ];
38
    }
39
}
40