Prevent a package from having duplicate names
parent
d03fb4804c
commit
c425b8b6cb
|
@ -104,6 +104,7 @@ class DefaultPolicy implements PolicyInterface
|
||||||
public function compareByPriorityPreferInstalled(Pool $pool, array $installedMap, PackageInterface $a, PackageInterface $b, $ignoreReplace = false)
|
public function compareByPriorityPreferInstalled(Pool $pool, array $installedMap, PackageInterface $a, PackageInterface $b, $ignoreReplace = false)
|
||||||
{
|
{
|
||||||
if ($a->getRepository() === $b->getRepository()) {
|
if ($a->getRepository() === $b->getRepository()) {
|
||||||
|
// prefer aliases to the original package
|
||||||
if ($a->getName() === $b->getName()) {
|
if ($a->getName() === $b->getName()) {
|
||||||
$aAliased = $a instanceof AliasPackage;
|
$aAliased = $a instanceof AliasPackage;
|
||||||
$bAliased = $b instanceof AliasPackage;
|
$bAliased = $b instanceof AliasPackage;
|
||||||
|
|
|
@ -73,18 +73,18 @@ abstract class BasePackage implements PackageInterface
|
||||||
public function getNames()
|
public function getNames()
|
||||||
{
|
{
|
||||||
$names = array(
|
$names = array(
|
||||||
$this->getName(),
|
$this->getName() => true,
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($this->getProvides() as $link) {
|
foreach ($this->getProvides() as $link) {
|
||||||
$names[] = $link->getTarget();
|
$names[$link->getTarget()] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->getReplaces() as $link) {
|
foreach ($this->getReplaces() as $link) {
|
||||||
$names[] = $link->getTarget();
|
$names[$link->getTarget()] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $names;
|
return array_keys($names);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue