| 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 |