class Solver (View source)

Constants

BRANCH_LITERALS

BRANCH_LEVEL

Properties

protected PolicyInterface $policy
protected Pool $pool
protected RepositoryInterface $installed
protected Ruleset $rules
protected RuleSetGenerator $ruleSetGenerator
protected array $jobs
protected int[] $updateMap
protected RuleWatchGraph $watchGraph
protected Decisions $decisions
protected int[] $installedMap
protected int $propagateIndex
protected array[] $branches
protected Problem[] $problems
protected array $learnedPool
protected array $learnedWhy
protected IOInterface $io

Methods

__construct(PolicyInterface $policy, Pool $pool, RepositoryInterface $installed, IOInterface $io)

No description

int
getRuleSetSize()

No description

setupInstalledMap()

No description

checkForRootRequireProblems(bool $ignorePlatformReqs)

No description

array
solve(Request $request, bool $ignorePlatformReqs = false)

No description

Rule|null
propagate(int $level)

Makes a decision and propagates it to all rules.

array
analyze(int $level, Rule $rule)

No description

Details

__construct(PolicyInterface $policy, Pool $pool, RepositoryInterface $installed, IOInterface $io)

Parameters

PolicyInterface $policy
Pool $pool
RepositoryInterface $installed
IOInterface $io

int getRuleSetSize()

Return Value

int

protected setupInstalledMap()

protected checkForRootRequireProblems(bool $ignorePlatformReqs)

Parameters

bool $ignorePlatformReqs

array solve(Request $request, bool $ignorePlatformReqs = false)

Parameters

Request $request
bool $ignorePlatformReqs

Return Value

array

protected Rule|null propagate(int $level)

Makes a decision and propagates it to all rules.

Evaluates each term affected by the decision (linked through watches) If we find unit rules we make new decisions based on them

Parameters

int $level

Return Value

Rule|null A rule on conflict, otherwise null.

protected array analyze(int $level, Rule $rule)

Parameters

int $level
Rule $rule

Return Value

array