Conditions | 6 |
Paths | 5 |
Total Lines | 19 |
Code Lines | 12 |
Lines | 0 |
Ratio | 0 % |
Tests | 12 |
CRAP Score | 6.0163 |
Changes | 2 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
7 | 7 | public function __invoke(string $composerJson, array $phpCoreExtensions = []): array |
|
8 | { |
||
9 | 7 | $composerJsonContent = file_get_contents($composerJson); |
|
10 | 7 | if ($composerJsonContent === false) { |
|
11 | throw new \InvalidArgumentException('could not load file [' . $composerJson . ']'); |
||
12 | } |
||
13 | 7 | $requires = json_decode($composerJsonContent, true)['require'] ?? []; |
|
14 | |||
15 | 7 | $extensions = []; |
|
16 | 7 | foreach ($requires as $require => $version) { |
|
17 | 6 | if ($require == 'php' || $require == 'php-64bit') { |
|
18 | 5 | $extensions = array_merge($extensions, $phpCoreExtensions); |
|
19 | 5 | continue; |
|
20 | } |
||
21 | 4 | if (strpos($require, 'ext-') === 0) { |
|
22 | 4 | $extensions = array_merge($extensions, [substr($require, 4)]); |
|
23 | } |
||
24 | } |
||
25 | 7 | return $extensions; |
|
26 | } |
||
28 |