$params]; } return $params; } /** * @param Closure $callback * @return bool */ protected function setCallback(Closure $callback) { if (! ($callback instanceof Closure)) { return false; } $this->callback = $callback; return true; } public function check(&$value) { $callback = $this->callback; $result = $callback($value, $this); if (is_string($result)) { $this->setMessage($result); return false; } return ! empty($result); } }