Completed
Pull Request — master (#42)
by Simon
01:54
created

ConfigMerger::merge()   B

Complexity

Conditions 5
Paths 9

Size

Total Lines 24
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 24
rs 8.5125
c 1
b 0
f 0
cc 5
eloc 13
nc 9
nop 2
1
<?php declare(strict_types=1);
2
3
4
namespace Shopware\Psh\Config;
5
6
7
class ConfigMerger
8
{
9
    /**
10
     * @param Config $config
11
     * @return Config
12
     */
13
    public function merge(Config $config, Config $override = null): Config
14
    {
15
        if ($override === null) {
16
            return $config;
17
        }
18
19
        $header = $config->getHeader();
20
        $defaultEnvironment = $config->getDefaultEnvironment();
21
        $environments = $config->getEnvironments();
22
23
        if ($override->getHeader()) {
24
            $header = $override->getHeader();
25
        }
26
27
        if ($override->getEnvironments()) {
28
            $environments = $override->getEnvironments();
29
        }
30
31
        if ($override->getDefaultEnvironment()) {
32
            $defaultEnvironment = $override->getDefaultEnvironment();
33
        }
34
35
        return new Config($header, $defaultEnvironment, $environments);
36
    }
37
}