#!/usr/bin/env php in(__DIR__ . '/../src') ->name('composer.json') ->files(); $require = []; $autoload = []; $autoloadFiles = []; $autoloadDev = []; $configProviders = []; foreach ($files as $file) { $component = basename(dirname($file)); $composerJson = json_decode(file_get_contents($file), true); foreach ($composerJson['autoload']['files'] ?? [] as $file) { $autoloadFiles[] = "src/{$component}/" . preg_replace('#^./#', '', $file); } foreach ($composerJson['autoload']['psr-4'] ?? [] as $ns => $dir) { $autoload[$ns] = "src/{$component}/" . trim($dir, '/') . '/'; } foreach ($composerJson['autoload-dev']['psr-4'] ?? [] as $ns => $dir) { $autoloadDev[$ns] = "src/{$component}/" . trim($dir, '/') . '/'; } if (isset($composerJson['extra']['hyperf']['config'])) { $configProviders = array_merge($configProviders, (array)$composerJson['extra']['hyperf']['config']); } } ksort($autoload); sort($autoloadFiles); ksort($autoloadDev); sort($configProviders); $json = json_decode(file_get_contents(__DIR__ . '/../composer.json')); $json->autoload->files = $autoloadFiles; $json->autoload->{'psr-4'} = $autoload; $json->{'autoload-dev'}->{'psr-4'} = $autoloadDev; $json->extra->hyperf->config = $configProviders; file_put_contents( __DIR__ . '/../composer.json', json_encode($json, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) . PHP_EOL );