DefinedExtensionsResolver::__invoke()   A
last analyzed

Complexity

Conditions 5
Paths 4

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 5

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 9
c 2
b 0
f 0
dl 0
loc 15
ccs 10
cts 10
cp 1
rs 9.6111
cc 5
nc 4
nop 2
crap 5
1
<?php
2
3
namespace ComposerRequireChecker\DefinedExtensionsResolver;
4
5
class DefinedExtensionsResolver
6
{
7 12
    public function __invoke(string $composerJson, array $phpCoreExtensions = []): array
8
    {
9 12
        $requires = json_decode(file_get_contents($composerJson), true)['require'] ?? [];
10
11 12
        $extensions = [];
12 12
        foreach ($requires as $require => $version) {
13 9
            if ($require == 'php' || $require == 'php-64bit') {
14 8
                $extensions = array_merge($extensions, $phpCoreExtensions);
15 8
                continue;
16
            }
17 5
            if (strpos($require, 'ext-') === 0) {
18 5
                $extensions = array_merge($extensions, [substr($require, 4)]);
19
            }
20
        }
21 12
        return $extensions;
22
    }
23
}
24