| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- declare(strict_types=1);
- namespace SixShop\Core;
- use Composer\InstalledVersions;
- class Plugin
- {
- public const string EXTENSION_TYPE = 'sixshop-extension';
- public const string CACHE_TAG = 'sixshop_extensions';
- public static array $installedSixShopExtensions = [];
- /**
- * @return array{root: array{reference: string}, versions: array<string, array>}
- */
- public static function getInstalledSixShopExtensions(): array
- {
- if (self::$installedSixShopExtensions) {
- return self::$installedSixShopExtensions;
- }
- $versions = [];
- $referenceMap = [];
- foreach (InstalledVersions::getInstalledPackagesByType(self::EXTENSION_TYPE) as $name) {
- $versions[$name] = [
- 'name' => $name,
- 'version' => InstalledVersions::getPrettyVersion($name) ?? 'dev-main',
- 'reference' => InstalledVersions::getReference($name),
- 'install_path' => InstalledVersions::getInstallPath($name),
- ];
- $referenceMap[$name] = InstalledVersions::getReference($name) ?: $versions[$name]['version'];
- }
- return self::$installedSixShopExtensions = [
- 'root' => ['reference' => hash('md5', json_encode($referenceMap))],
- 'versions' => $versions,
- ];
- }
- }
|