ParametersHandler   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 6
dl 0
loc 28
ccs 0
cts 21
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B buildParameters() 0 25 4
1
<?php
2
3
namespace Paro\EnvironmentParameters;
4
5
use Composer\Script\Event;
6
use Symfony\Component\Filesystem\Filesystem;
7
8
class ParametersHandler
9
{
10
    public static function buildParameters(Event $event)
11
    {
12
        $extras = $event->getComposer()->getPackage()->getExtra();
13
        if (!isset($extras['environment-parameters'])) {
14
            throw new \InvalidArgumentException('The parameter handler needs to be configured through the extra.environment-parameters setting.');
15
        }
16
        $configs = $extras['environment-parameters'];
17
        if (!is_array($configs)) {
18
            throw new \InvalidArgumentException('The extra.environment-parameters setting must be an array or a configuration object.');
19
        }
20
21
        $fs = new Filesystem();
22
        $fileHandler = new FileHandler($fs, $event->getArguments());
23
24
        if (!isset($configs['build-folder'])) {
25
            $configs['build-folder'] = 'build';
26
        }
27
        $fileHandler->initDirectory($configs['build-folder']);
28
29
        $fileProcessor = new FileProcessor($fs, $event->getIO(), $fileHandler);
30
        $fileProcessor->process($configs);
31
32
        $incenteevProcessor = new IncenteevParametersProcessor($fs, $fileHandler, $event->getIO());
33
        $incenteevProcessor->process($configs, $event);
34
    }
35
}
36