function MultiConstraint::compile
Overrides ConstraintInterface::compile
File
-
vendor/
composer/ semver/ src/ Constraint/ MultiConstraint.php, line 87
Class
- MultiConstraint
- Defines a conjunctive or disjunctive set of constraints.
Namespace
Composer\Semver\ConstraintCode
public function compile($otherOperator) {
$parts = array();
foreach ($this->constraints as $constraint) {
$code = $constraint->compile($otherOperator);
if ($code === 'true') {
if (!$this->conjunctive) {
return 'true';
}
}
elseif ($code === 'false') {
if ($this->conjunctive) {
return 'false';
}
}
else {
$parts[] = '(' . $code . ')';
}
}
if (!$parts) {
return $this->conjunctive ? 'true' : 'false';
}
return $this->conjunctive ? implode('&&', $parts) : implode('||', $parts);
}