Failed Conditions
Pull Request — master (#632)
by Michael
02:44
created

JsonConfiguration::doLoad()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 3.0123

Importance

Changes 0
Metric Value
cc 3
eloc 8
nc 3
nop 1
dl 0
loc 16
ccs 8
cts 9
cp 0.8889
crap 3.0123
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Migrations\Configuration;
6
7
use Doctrine\Migrations\MigrationException;
8
use function file_get_contents;
9
use function json_decode;
10
11
class JsonConfiguration extends AbstractFileConfiguration
12
{
13
    /** @inheritdoc */
14 19
    protected function doLoad(string $file) : void
15
    {
16 19
        $config = json_decode(file_get_contents($file), true);
17
18 19
        if ($config === false) {
19
            throw MigrationException::configurationNotValid('Configuration is not valid JSON.');
20
        }
21
22 19
        if (isset($config['migrations_directory'])) {
23 12
            $config['migrations_directory'] = $this->getDirectoryRelativeToFile(
24 12
                $file,
25 12
                $config['migrations_directory']
26
            );
27
        }
28
29 19
        $this->setConfiguration($config);
30 16
    }
31
}
32