Prevent a package from having duplicate names

main
Jordi Boggiano 13 years ago
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)
{
if ($a->getRepository() === $b->getRepository()) {
// prefer aliases to the original package
if ($a->getName() === $b->getName()) {
$aAliased = $a instanceof AliasPackage;
$bAliased = $b instanceof AliasPackage;

@ -73,18 +73,18 @@ abstract class BasePackage implements PackageInterface
public function getNames()
{
$names = array(
$this->getName(),
$this->getName() => true,
);
foreach ($this->getProvides() as $link) {
$names[] = $link->getTarget();
$names[$link->getTarget()] = true;
}
foreach ($this->getReplaces() as $link) {
$names[] = $link->getTarget();
$names[$link->getTarget()] = true;
}
return $names;
return array_keys($names);
}
/**

Loading…
Cancel
Save