/** * @inheritdoc */ public function validate($input) { $conditionResult = call_user_func($this->condition, $input); $this->selectedRule = $conditionResult === true ? $this->onTrue : $this->onFalse; foreach ($this->selectedRule->validate($input) as $error) { (yield $error); } }
/** * @inheritdoc */ public function validate($input) { $firstHasErrors = false; foreach ($this->first->validate($input) as $error) { $firstHasErrors = true; (yield $error); } if ($firstHasErrors === false) { foreach ($this->second->validate($input) as $error) { (yield $error); } } }
/** * @inheritdoc */ public function validate($input) { $secondaryHasErrors = false; foreach ($this->secondary->validate($input) as $error) { $error ?: null; // suppress unused $secondaryHasErrors = true; break; } // if secondary condition failed then rule will become 'failed' only if primary condition fails too. if ($secondaryHasErrors === true) { foreach ($this->primary->validate($input) as $error) { (yield $error); } } }
/** * @param RuleInterface $rule * @param mixed $input * @param ErrorAggregatorInterface $aggregator * * @return Generator */ protected static function validateData(RuleInterface $rule, $input, ErrorAggregatorInterface $aggregator) { foreach ($rule->validate($input) as $error) { (yield $error); } $rule->onFinish($aggregator); foreach ($aggregator->get() as $error) { (yield $error); } }