Remove whitelisting of required package names, done by pool builder now
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…
Reference in New Issue