| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- <?php
- declare(strict_types=1);
- namespace SixShop\Core\Command;
- use Composer\InstalledVersions;
- use SixShop\Core\Plugin;
- use think\console\Command;
- class GenerateInstalledSixShopCommand extends Command
- {
- public function configure(): void
- {
- $this->setName('generate:installed-sixshop')
- ->setDescription('Generate vendor/composer/installedSixShop.php');
- }
- public function handle(): void
- {
- $installedSixShopExtensions = [
- 'root' => [],
- 'versions' => []
- ];
- $referenceMap = [];
- foreach (InstalledVersions::getAllRawData() as $installed) {
- foreach ($installed['versions'] as $name => $package) {
- if (isset($package['type']) && $package['type'] === Plugin::EXTENSION_TYPE) {
- $installedSixShopExtensions['versions'][$name] = $package;
- $referenceMap[$name] = $package['reference'];
- }
- }
- }
- $installedSixShopExtensions['root']['reference'] = hash('md5', json_encode($referenceMap));
- $filePath = dirname(InstalledVersions::getInstallPath('composer/composer'), 2) . '/installedSixShop.php';
- file_put_contents($filePath, '<?php return ' . var_export($installedSixShopExtensions, true) . ';');
- $this->output->writeln("Generated: $filePath");
- }
- }
|