public function validate(mixed $value, RuleInterface $rule, ValidationContext $context): Result
{
if (!$rule instanceof TrueValue) {
throw new UnexpectedRuleException(TrueValue::class, $rule);
}
if (!is_scalar($value)) {
$parameters = $this->getCommonResultParameters($rule, $context);
$parameters['type'] = get_debug_type($value);
return (new Result())->addError($rule->getIncorrectInputMessage(), $parameters);
}
if ($rule->isStrict()) {
$valid = $value === $rule->getTrueValue();
} else {
$valid = $value == $rule->getTrueValue();
}
if ($valid) {
return new Result();
}
$parameters = $this->getCommonResultParameters($rule, $context);
$parameters['value'] = $value;
return (new Result())->addError($rule->getMessage(), $parameters);
}
Signup or Login in order to comment.