DefinedExtensionsResolver   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 5
eloc 10
c 3
b 0
f 0
dl 0
loc 17
ccs 10
cts 10
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 15 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