Fix project aliases being redownloaded since they had no version
parent
983de81b1d
commit
9da7fbbf37
|
@ -139,9 +139,13 @@ class Installer
|
||||||
}
|
}
|
||||||
foreach ($aliases as $alias) {
|
foreach ($aliases as $alias) {
|
||||||
foreach ($this->repositoryManager->findPackages($alias['package'], $alias['version']) as $package) {
|
foreach ($this->repositoryManager->findPackages($alias['package'], $alias['version']) as $package) {
|
||||||
|
$package->setAlias($alias['alias_normalized']);
|
||||||
|
$package->setPrettyAlias($alias['alias']);
|
||||||
$package->getRepository()->addPackage(new AliasPackage($package, $alias['alias_normalized'], $alias['alias']));
|
$package->getRepository()->addPackage(new AliasPackage($package, $alias['alias_normalized'], $alias['alias']));
|
||||||
}
|
}
|
||||||
foreach ($this->repositoryManager->getLocalRepository()->findPackages($alias['package'], $alias['version']) as $package) {
|
foreach ($this->repositoryManager->getLocalRepository()->findPackages($alias['package'], $alias['version']) as $package) {
|
||||||
|
$package->setAlias($alias['alias_normalized']);
|
||||||
|
$package->setPrettyAlias($alias['alias']);
|
||||||
$this->repositoryManager->getLocalRepository()->addPackage(new AliasPackage($package, $alias['alias_normalized'], $alias['alias']));
|
$this->repositoryManager->getLocalRepository()->addPackage(new AliasPackage($package, $alias['alias_normalized'], $alias['alias']));
|
||||||
$this->repositoryManager->getLocalRepository()->removePackage($package);
|
$this->repositoryManager->getLocalRepository()->removePackage($package);
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,9 +102,9 @@ class ArrayRepository implements RepositoryInterface
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function createAliasPackage(PackageInterface $package)
|
protected function createAliasPackage(PackageInterface $package, $alias = null, $prettyAlias = null)
|
||||||
{
|
{
|
||||||
return new AliasPackage($package, $package->getAlias(), $package->getPrettyAlias());
|
return new AliasPackage($package, $alias ?: $package->getAlias(), $prettyAlias ?: $package->getPrettyAlias());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -59,8 +59,11 @@ class FilesystemRepository extends ArrayRepository implements WritableRepository
|
||||||
|
|
||||||
// package was installed as alias, so we only add the alias
|
// package was installed as alias, so we only add the alias
|
||||||
if ($this instanceof InstalledRepositoryInterface && !empty($packageData['installed-as-alias'])) {
|
if ($this instanceof InstalledRepositoryInterface && !empty($packageData['installed-as-alias'])) {
|
||||||
|
$alias = $packageData['installed-as-alias'];
|
||||||
|
$package->setAlias($alias);
|
||||||
|
$package->setPrettyAlias($alias);
|
||||||
$package->setInstalledAsAlias(true);
|
$package->setInstalledAsAlias(true);
|
||||||
$this->addPackage($this->createAliasPackage($package));
|
$this->addPackage($this->createAliasPackage($package, $alias, $alias));
|
||||||
} else {
|
} else {
|
||||||
// only add regular package - if it's not an installed repo the alias will be created on the fly
|
// only add regular package - if it's not an installed repo the alias will be created on the fly
|
||||||
$this->addPackage($package);
|
$this->addPackage($package);
|
||||||
|
@ -78,7 +81,7 @@ class FilesystemRepository extends ArrayRepository implements WritableRepository
|
||||||
foreach ($this->getPackages() as $package) {
|
foreach ($this->getPackages() as $package) {
|
||||||
$data = $dumper->dump($package);
|
$data = $dumper->dump($package);
|
||||||
if ($this instanceof InstalledRepositoryInterface && $package->isInstalledAsAlias()) {
|
if ($this instanceof InstalledRepositoryInterface && $package->isInstalledAsAlias()) {
|
||||||
$data['installed-as-alias'] = true;
|
$data['installed-as-alias'] = $package->getAlias();
|
||||||
}
|
}
|
||||||
$packages[] = $data;
|
$packages[] = $data;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue