Completed
Push — master ( 961aa4...4462c2 )
by Matthias
03:43
created

DefinedExtensionsResolver::__invoke()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 16
Code Lines 10

Duplication

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