<?php /** * This file is part of the CodeIgniter 4 framework. * * (c) CodeIgniter Foundation <admin@codeigniter.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace CodeIgniter\Validation; use CodeIgniter\HTTP\RequestInterface; /** * Expected behavior of a validator */ interface ValidationInterface { /** * Runs the validation process, returning true/false determining whether * or not validation was successful. * * @param array $data The array of data to validate. * @param string $group The pre-defined group of rules to apply. * * @return boolean */ public function run(array $data = null, string $group = null): bool; //-------------------------------------------------------------------- /** * Check; runs the validation process, returning true or false * determining whether or not validation was successful. * * @param mixed $value Value to validation. * @param string $rule Rule. * @param string[] $errors Errors. * * @return boolean True if valid, else false. */ public function check($value, string $rule, array $errors = []): bool; //-------------------------------------------------------------------- /** * Takes a Request object and grabs the input data to use from its * array values. * * @param RequestInterface $request * * @return ValidationInterface */ public function withRequest(RequestInterface $request): ValidationInterface; //-------------------------------------------------------------------- // Rules //-------------------------------------------------------------------- /** * Stores the rules that should be used to validate the items. * * @param array $rules * @param array $messages * * @return ValidationInterface */ public function setRules(array $rules, array $messages = []): ValidationInterface; //-------------------------------------------------------------------- /** * Checks to see if the rule for key $field has been set or not. * * @param string $field * * @return boolean */ public function hasRule(string $field): bool; //-------------------------------------------------------------------- //-------------------------------------------------------------------- // Errors //-------------------------------------------------------------------- /** * Returns the error for a specified $field (or empty string if not set). * * @param string $field * * @return string */ public function getError(string $field): string; //-------------------------------------------------------------------- /** * Returns the array of errors that were encountered during * a run() call. The array should be in the following format: * * [ * 'field1' => 'error message', * 'field2' => 'error message', * ] * * @return array<string,string> */ public function getErrors(): array; //-------------------------------------------------------------------- /** * Sets the error for a specific field. Used by custom validation methods. * * @param string $alias * @param string $error * * @return ValidationInterface */ public function setError(string $alias, string $error): ValidationInterface; //-------------------------------------------------------------------- // Misc //-------------------------------------------------------------------- /** * Resets the class to a blank slate. Should be called whenever * you need to process more than one array. * * @return ValidationInterface */ public function reset(): ValidationInterface; //-------------------------------------------------------------------- }