Undo addition of initializeInstalled and remove inline copy of the data from the class
parent
3fe4f84a76
commit
82cffa17d3
|
@ -24,15 +24,10 @@ use Composer\Semver\VersionParser;
|
|||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed = array();
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Initialize $installed array
|
||||
*/
|
||||
public static function initializeInstalled() {}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
|
@ -253,6 +248,10 @@ class InstalledVersions
|
|||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
|
@ -260,7 +259,7 @@ class InstalledVersions
|
|||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[]}, versions: array<string, array{pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[]}>}>
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
|
@ -309,14 +308,18 @@ class InstalledVersions
|
|||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
|
||||
InstalledVersions::initializeInstalled();
|
||||
|
|
|
@ -130,14 +130,9 @@ class FilesystemRepository extends WritableArrayRepository
|
|||
|
||||
if ($this->dumpVersions) {
|
||||
$versions = $this->generateInstalledVersions($installationManager, $installPaths, $devMode, $repoDir);
|
||||
$versionsCode = $this->dumpToPhpCode($versions);
|
||||
|
||||
$fs->filePutContentsIfModified($repoDir.'/installed.php', '<?php return ' . $versionsCode . ';'."\n");
|
||||
$fs->filePutContentsIfModified($repoDir.'/installed.php', '<?php return ' . $this->dumpToPhpCode($versions) . ';'."\n");
|
||||
$installedVersionsClass = file_get_contents(__DIR__.'/../InstalledVersions.php');
|
||||
// while not strictly needed since https://github.com/composer/composer/pull/9635 - we keep this for BC
|
||||
// and overall broader compatibility with people that may not use Composer's ClassLoader. They can
|
||||
// simply include InstalledVersions.php manually and have it working in a basic way.
|
||||
$installedVersionsClass = str_replace('public static function initializeInstalled() {}', 'public static function initializeInstalled() {' . PHP_EOL . 'self::$installed = ' . $versionsCode . ';' . PHP_EOL . '}', $installedVersionsClass);
|
||||
$fs->filePutContentsIfModified($repoDir.'/InstalledVersions.php', $installedVersionsClass);
|
||||
|
||||
\Composer\InstalledVersions::reload($versions);
|
||||
|
|
Loading…
Reference in New Issue