ConsoleDependencyProvider   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 6
eloc 13
dl 0
loc 50
ccs 0
cts 27
cp 0
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A addDevelopmentCommands() 0 6 2
A getDockerClientCommands() 0 13 2
A getCommandProvider() 0 4 1
A getCommandList() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Nexus\Console;
5
6
use Nexus\DynamicModules\Communication\Provider\CommandProvider as DynamicModulesCommandProvider;
7
use Xervice\Console\ConsoleDependencyProvider as XerviceConsoleDependencyProvider;
8
use Xervice\DataProvider\Communication\Console\GenerateCommand;
9
use Xervice\Development\Communication\Console\Command\GenerateAutoCompleteCommand;
10
11
class ConsoleDependencyProvider extends XerviceConsoleDependencyProvider
12
{
13
    /**
14
     * @return array
15
     */
16
    protected function getCommandList(): array
17
    {
18
        return $this->getDockerClientCommands();
19
    }
20
21
    /**
22
     * @return array
23
     */
24
    private function getDockerClientCommands(): array
25
    {
26
        $commands = [
27
            new GenerateCommand()
28
        ];
29
30
        $commands = $this->addDevelopmentCommands($commands);
31
32
        foreach ($this->getCommandProvider() as $provider) {
33
            $commands = $provider->provideCommands($commands);
34
        }
35
36
        return $commands;
37
    }
38
39
    /**
40
     * @return \Nexus\Console\Provider\CommandProviderInterface[]
41
     */
42
    private function getCommandProvider(): array
43
    {
44
        return [
45
            new DynamicModulesCommandProvider()
46
        ];
47
    }
48
49
    /**
50
     * @param array $commands
51
     *
52
     * @return array
53
     * @throws \Symfony\Component\Console\Exception\LogicException
54
     */
55
    private function addDevelopmentCommands(array $commands): array
56
    {
57
        if (class_exists(GenerateAutoCompleteCommand::class)) {
58
            $commands[] = new GenerateAutoCompleteCommand();
59
        }
60
        return $commands;
61
    }
62
}