1
0
Fork 0

Fix show command, refactor RepositorySet constructor

pull/8566/head
Jordi Boggiano 2020-01-30 20:21:17 +01:00
parent 38f6ae2c4e
commit 2f4ea3a463
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
9 changed files with 22 additions and 14 deletions

View File

@ -311,7 +311,7 @@ EOT
throw new \InvalidArgumentException('Invalid stability provided ('.$stability.'), must be one of: '.implode(', ', array_keys(BasePackage::$stabilities))); throw new \InvalidArgumentException('Invalid stability provided ('.$stability.'), must be one of: '.implode(', ', array_keys(BasePackage::$stabilities)));
} }
$repositorySet = new RepositorySet(array(), array(), $stability); $repositorySet = new RepositorySet($stability);
$repositorySet->addRepository($sourceRepo); $repositorySet->addRepository($sourceRepo);
$phpVersion = null; $phpVersion = null;

View File

@ -693,7 +693,7 @@ EOT
$key = $minimumStability ?: 'default'; $key = $minimumStability ?: 'default';
if (!isset($this->repositorySets[$key])) { if (!isset($this->repositorySets[$key])) {
$this->repositorySets[$key] = $repositorySet = new RepositorySet(array(), array(), $minimumStability ?: $this->getMinimumStability($input)); $this->repositorySets[$key] = $repositorySet = new RepositorySet($minimumStability ?: $this->getMinimumStability($input));
$repositorySet->addRepository($this->getRepos()); $repositorySet->addRepository($this->getRepos());
} }

View File

@ -541,7 +541,8 @@ EOT
$constraint = is_string($version) ? $this->versionParser->parseConstraints($version) : $version; $constraint = is_string($version) ? $this->versionParser->parseConstraints($version) : $version;
$policy = new DefaultPolicy(); $policy = new DefaultPolicy();
$repositorySet = new RepositorySet(array(), array(), 'dev'); $repositorySet = new RepositorySet('dev');
$repositorySet->allowInstalledRepositories();
$repositorySet->addRepository($repos); $repositorySet->addRepository($repos);
$matchedPackage = null; $matchedPackage = null;
@ -1194,7 +1195,7 @@ EOT
private function getRepositorySet(Composer $composer) private function getRepositorySet(Composer $composer)
{ {
if (!$this->repositorySet) { if (!$this->repositorySet) {
$this->repositorySet = new RepositorySet(array(), array(), $composer->getPackage()->getMinimumStability(), $composer->getPackage()->getStabilityFlags()); $this->repositorySet = new RepositorySet($composer->getPackage()->getMinimumStability(), $composer->getPackage()->getStabilityFlags());
$this->repositorySet->addRepository(new CompositeRepository($composer->getRepositoryManager()->getRepositories())); $this->repositorySet->addRepository(new CompositeRepository($composer->getRepositoryManager()->getRepositories()));
} }

View File

@ -719,7 +719,7 @@ class Installer
$this->fixedRootPackage->setRequires(array()); $this->fixedRootPackage->setRequires(array());
$this->fixedRootPackage->setDevRequires(array()); $this->fixedRootPackage->setDevRequires(array());
$repositorySet = new RepositorySet($rootAliases, $this->package->getReferences(), $minimumStability, $stabilityFlags, $rootRequires); $repositorySet = new RepositorySet($minimumStability, $stabilityFlags, $rootAliases, $this->package->getReferences(), $rootRequires);
$repositorySet->addRepository(new RootPackageRepository(array($this->fixedRootPackage))); $repositorySet->addRepository(new RootPackageRepository(array($this->fixedRootPackage)));
$repositorySet->addRepository($platformRepo); $repositorySet->addRepository($platformRepo);
if ($this->additionalFixedRepository) { if ($this->additionalFixedRepository) {
@ -873,7 +873,7 @@ class Installer
} }
} }
$repositorySet = new RepositorySet(array(), array(), 'dev'); $repositorySet = new RepositorySet('dev');
$repositorySet->addRepository($lockRepo); $repositorySet->addRepository($lockRepo);
$seen = array(); $seen = array();

View File

@ -158,7 +158,7 @@ class PluginManager
$localRepo = $this->composer->getRepositoryManager()->getLocalRepository(); $localRepo = $this->composer->getRepositoryManager()->getLocalRepository();
$globalRepo = $this->globalComposer ? $this->globalComposer->getRepositoryManager()->getLocalRepository() : null; $globalRepo = $this->globalComposer ? $this->globalComposer->getRepositoryManager()->getLocalRepository() : null;
$repositorySet = new RepositorySet(array(), array(), 'dev'); $repositorySet = new RepositorySet('dev');
$repositorySet->addRepository($localRepo); $repositorySet->addRepository($localRepo);
if ($globalRepo) { if ($globalRepo) {
$repositorySet->addRepository($globalRepo); $repositorySet->addRepository($globalRepo);

View File

@ -56,8 +56,10 @@ class RepositorySet
/** @var bool */ /** @var bool */
private $locked = false; private $locked = false;
/** @var bool */
private $allowInstalledRepositories = false;
public function __construct(array $rootAliases = array(), array $rootReferences = array(), $minimumStability = 'stable', array $stabilityFlags = array(), array $rootRequires = array()) public function __construct($minimumStability = 'stable', array $stabilityFlags = array(), array $rootAliases = array(), array $rootReferences = array(), array $rootRequires = array())
{ {
$this->rootAliases = $rootAliases; $this->rootAliases = $rootAliases;
$this->rootReferences = $rootReferences; $this->rootReferences = $rootReferences;
@ -77,6 +79,11 @@ class RepositorySet
} }
} }
public function allowInstalledRepositories($allow = true)
{
$this->allowInstalledRepositories = $allow;
}
public function getRootRequires() public function getRootRequires()
{ {
return $this->rootRequires; return $this->rootRequires;
@ -186,7 +193,7 @@ class RepositorySet
$poolBuilder = new PoolBuilder($this->acceptableStabilities, $this->stabilityFlags, $this->rootAliases, $this->rootReferences); $poolBuilder = new PoolBuilder($this->acceptableStabilities, $this->stabilityFlags, $this->rootAliases, $this->rootReferences);
foreach ($this->repositories as $repo) { foreach ($this->repositories as $repo) {
if ($repo instanceof InstalledRepositoryInterface) { if ($repo instanceof InstalledRepositoryInterface && !$this->allowInstalledRepositories) {
throw new \LogicException('The pool can not accept packages from an installed repository'); throw new \LogicException('The pool can not accept packages from an installed repository');
} }
} }

View File

@ -36,7 +36,7 @@ class DefaultPolicyTest extends TestCase
public function setUp() public function setUp()
{ {
$this->repositorySet = new RepositorySet(array(), array(), 'dev'); $this->repositorySet = new RepositorySet('dev');
$this->repo = new ArrayRepository; $this->repo = new ArrayRepository;
$this->repoLocked = new LockArrayRepository; $this->repoLocked = new LockArrayRepository;
@ -144,7 +144,7 @@ class DefaultPolicyTest extends TestCase
$this->assertSame($expected, $selected); $this->assertSame($expected, $selected);
$this->repositorySet = new RepositorySet(array(), array(), 'dev'); $this->repositorySet = new RepositorySet('dev');
$this->repositorySet->addRepository($repo2); $this->repositorySet->addRepository($repo2);
$this->repositorySet->addRepository($repo1); $this->repositorySet->addRepository($repo1);
@ -250,7 +250,7 @@ class DefaultPolicyTest extends TestCase
$repo->addPackage($packageA = clone $packageA); $repo->addPackage($packageA = clone $packageA);
$repo->addPackage($packageB = clone $packageB); $repo->addPackage($packageB = clone $packageB);
$repositorySet = new RepositorySet(array(), array(), 'dev'); $repositorySet = new RepositorySet('dev');
$repositorySet->addRepository($this->repo); $repositorySet->addRepository($this->repo);
$pool = $this->repositorySet->createPoolForPackages(array('vendor-a/replacer', 'vendor-b/replacer'), $this->repoLocked); $pool = $this->repositorySet->createPoolForPackages(array('vendor-a/replacer', 'vendor-b/replacer'), $this->repoLocked);

View File

@ -74,7 +74,7 @@ class PoolBuilderTest extends TestCase
return $pkg; return $pkg;
}; };
$repositorySet = new RepositorySet($normalizedAliases, array(), $minimumStability, $stabilityFlags); $repositorySet = new RepositorySet($minimumStability, $stabilityFlags, $normalizedAliases);
$repositorySet->addRepository($repo = new ArrayRepository()); $repositorySet->addRepository($repo = new ArrayRepository());
foreach ($packages as $package) { foreach ($packages as $package) {
$repo->addPackage($loadPackage($package)); $repo->addPackage($loadPackage($package));

View File

@ -38,7 +38,7 @@ class SolverTest extends TestCase
public function setUp() public function setUp()
{ {
$this->repoSet = new RepositorySet(array()); $this->repoSet = new RepositorySet();
$this->repo = new ArrayRepository; $this->repo = new ArrayRepository;
$this->repoLocked = new LockArrayRepository; $this->repoLocked = new LockArrayRepository;