private function getAllLinks($repos, $minimumStability, $verbose)
{
$links = [];
foreach ($repos as $repo) {
// collect links for composer repos with providers
if ($repo instanceof ComposerRepository && $repo->hasProviders()) {
foreach ($repo->getProviderNames() as $name) {
$links[] = new Link('__root__', $name, new MultiConstraint([]), 'requires', '*');
}
} else {
$packages = $this->getPackages($repo);
foreach ($packages as $package) {
// skip aliases
if ($package instanceof AliasPackage) {
continue;
}
if (BasePackage::$stabilities[$package->getStability()] > BasePackage::$stabilities[$minimumStability]) {
if ($verbose) {
$this->output->writeln('Skipped ' . $package->getPrettyName() . ' (' . $package->getStability() . ')');
}
continue;
}
// add matching package if not yet selected
if (!isset($this->selected[$package->getUniqueName()])) {
if ($verbose) {
$this->output->writeln('Selected ' . $package->getPrettyName() . ' (' . $package->getPrettyVersion() . ')');
}
$this->selected[$package->getUniqueName()] = $package;
}
}
}
}
return $links;
}