Constants

BRANCH_LITERALS

BRANCH_LITERALS = 0

BRANCH_LEVEL

BRANCH_LEVEL = 1

Properties

$jobs

$jobs : array

Type

array

$updateMap

$updateMap : array<mixed,integer>

Type

array<mixed,integer>

$installedMap

$installedMap : array<mixed,integer>

Type

array<mixed,integer>

$propagateIndex

$propagateIndex : integer

Type

integer

$branches

$branches : array<mixed,array>

Type

array<mixed,array>

$learnedPool

$learnedPool : array

Type

array

$learnedWhy

$learnedWhy : array

Type

array

Methods

getRuleSetSize()

getRuleSetSize() : integer

Returns

integer

solve()

solve(\Composer\DependencyResolver\Request  $request, boolean  $ignorePlatformReqs = false) : array

Parameters

\Composer\DependencyResolver\Request $request
boolean $ignorePlatformReqs

Returns

array

setupInstalledMap()

setupInstalledMap() 

checkForRootRequireProblems()

checkForRootRequireProblems(boolean  $ignorePlatformReqs) 

Parameters

boolean $ignorePlatformReqs

propagate()

propagate(integer  $level) : \Composer\DependencyResolver\Rule|null

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

integer $level

Returns

\Composer\DependencyResolver\Rule|null —

A rule on conflict, otherwise null.

makeAssertionRuleDecisions()

makeAssertionRuleDecisions() 

revert()

revert(integer  $level) 

Reverts a decision at the given level.

Parameters

integer $level

setPropagateLearn()

setPropagateLearn(integer  $level, string|integer  $literal, boolean  $disableRules, \Composer\DependencyResolver\Rule  $rule) : integer

setpropagatelearn

add free decision (a positive literal) to decision queue increase level and propagate decision return if no conflict.

in conflict case, analyze conflict rule, add resulting rule to learnt rule set, make decision from learnt rule (always unit) and re-propagate.

returns the new solver level or 0 if unsolvable

Parameters

integer $level
string|integer $literal
boolean $disableRules
\Composer\DependencyResolver\Rule $rule

Returns

integer

selectAndInstall()

selectAndInstall(integer  $level, array  $decisionQueue, boolean  $disableRules, \Composer\DependencyResolver\Rule  $rule) : integer

Parameters

integer $level
array $decisionQueue
boolean $disableRules
\Composer\DependencyResolver\Rule $rule

Returns

integer

analyzeUnsolvable()

analyzeUnsolvable(\Composer\DependencyResolver\Rule  $conflictRule, boolean  $disableRules) : integer

Parameters

\Composer\DependencyResolver\Rule $conflictRule
boolean $disableRules

Returns

integer

resetSolver()

resetSolver() 

enableDisableLearnedRules()

enableDisableLearnedRules() 

enable/disable learnt rules

we have enabled or disabled some of our rules. We now re-enable all of our learnt rules except the ones that were learnt from rules that are now disabled.

runSat()

runSat(boolean  $disableRules = true) 

Parameters

boolean $disableRules