addMessage('Record already exists in database'); * * return false; * } * * return true; * }); * * $dedup->isValid($id); * ``` */ class CallbackValidator extends BaseValidator { /** @var callable Validation callback */ protected $callback; /** * Create a new callback validator * * @param callable $callback Validation callback */ public function __construct(callable $callback) { $this->callback = $callback; } public function isValid($value) { // Multiple isValid() calls must not stack validation messages $this->clearMessages(); return call_user_func($this->callback, $value, $this); } }