Remove whitelisting of required package names, done by pool builder now

main
Nils Adermann 6 years ago
parent 468f24b230
commit 7c2d3518e5

@ -49,7 +49,6 @@ class Pool implements \Countable
protected $versionParser; protected $versionParser;
protected $providerCache = array(); protected $providerCache = array();
protected $filterRequires; protected $filterRequires;
protected $whitelist = null;
public function __construct(array $filterRequires = array()) public function __construct(array $filterRequires = array())
{ {
@ -57,12 +56,6 @@ class Pool implements \Countable
$this->versionParser = new VersionParser; $this->versionParser = new VersionParser;
} }
public function setWhitelist($whitelist)
{
$this->whitelist = $whitelist;
$this->providerCache = array();
}
public function setPackages(array $packages, array $priorities = array()) public function setPackages(array $packages, array $priorities = array())
{ {
$this->priorities = $priorities; $this->priorities = $priorities;
@ -149,20 +142,6 @@ class Pool implements \Countable
$nameMatch = false; $nameMatch = false;
foreach ($candidates as $candidate) { foreach ($candidates as $candidate) {
$aliasOfCandidate = null;
// alias packages are not white listed, make sure that the package
// being aliased is white listed
if ($candidate instanceof AliasPackage) {
$aliasOfCandidate = $candidate->getAliasOf();
}
if ($this->whitelist !== null && !$bypassFilters && (
(!($candidate instanceof AliasPackage) && !isset($this->whitelist[$candidate->id])) ||
($candidate instanceof AliasPackage && !isset($this->whitelist[$aliasOfCandidate->id]))
)) {
continue;
}
switch ($this->match($candidate, $name, $constraint, $bypassFilters)) { switch ($this->match($candidate, $name, $constraint, $bypassFilters)) {
case self::MATCH_NONE: case self::MATCH_NONE:
break; break;

@ -26,7 +26,6 @@ class RuleSetGenerator
protected $rules; protected $rules;
protected $jobs; protected $jobs;
protected $installedMap; protected $installedMap;
protected $whitelistedMap;
protected $addedMap; protected $addedMap;
protected $conflictAddedMap; protected $conflictAddedMap;
protected $addedPackages; protected $addedPackages;
@ -147,41 +146,6 @@ class RuleSetGenerator
$this->rules->add($newRule, $type); $this->rules->add($newRule, $type);
} }
protected function whitelistFromPackage(PackageInterface $package)
{
$workQueue = new \SplQueue;
$workQueue->enqueue($package);
while (!$workQueue->isEmpty()) {
$package = $workQueue->dequeue();
if (isset($this->whitelistedMap[$package->id])) {
continue;
}
$this->whitelistedMap[$package->id] = true;
foreach ($package->getRequires() as $link) {
$possibleRequires = $this->pool->whatProvides($link->getTarget(), $link->getConstraint(), true);
foreach ($possibleRequires as $require) {
$workQueue->enqueue($require);
}
}
$obsoleteProviders = $this->pool->whatProvides($package->getName(), null, true);
foreach ($obsoleteProviders as $provider) {
if ($provider === $package) {
continue;
}
if (($package instanceof AliasPackage) && $package->getAliasOf() === $provider) {
$workQueue->enqueue($provider);
}
}
}
}
protected function addRulesForPackage(PackageInterface $package, $ignorePlatformReqs) protected function addRulesForPackage(PackageInterface $package, $ignorePlatformReqs)
{ {
$workQueue = new \SplQueue; $workQueue = new \SplQueue;
@ -290,20 +254,6 @@ class RuleSetGenerator
return $impossible; return $impossible;
} }
protected function whitelistFromJobs()
{
foreach ($this->jobs as $job) {
switch ($job['cmd']) {
case 'install':
$packages = $this->pool->whatProvides($job['packageName'], $job['constraint'], true);
foreach ($packages as $package) {
$this->whitelistFromPackage($package);
}
break;
}
}
}
protected function addRulesForJobs($ignorePlatformReqs) protected function addRulesForJobs($ignorePlatformReqs)
{ {
foreach ($this->jobs as $job) { foreach ($this->jobs as $job) {
@ -344,14 +294,6 @@ class RuleSetGenerator
$this->rules = new RuleSet; $this->rules = new RuleSet;
$this->installedMap = $installedMap; $this->installedMap = $installedMap;
$this->whitelistedMap = array();
foreach ($this->installedMap as $package) {
$this->whitelistFromPackage($package);
}
$this->whitelistFromJobs();
$this->pool->setWhitelist($this->whitelistedMap);
$this->addedMap = array(); $this->addedMap = array();
$this->conflictAddedMap = array(); $this->conflictAddedMap = array();
$this->addedPackages = array(); $this->addedPackages = array();

Loading…
Cancel
Save