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

DefinedExtensionsResolver   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0
Metric Value
wmc 4
lcom 0
cbo 0
dl 0
loc 20
rs 10

1 Method

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