Skip to content

Latest commit

 

History

History
121 lines (97 loc) · 2.8 KB

File metadata and controls

121 lines (97 loc) · 2.8 KB

Валидация

Типовое использование

$post = new Validation($_POST);
$post
	->required('blog_id')
	->required('title')
	->required('body')
	->isIntGt0 ('blog_id')
	->maxLength('title', 128)
	->maxLength('body', 65536)
	->is('CBlogMessage::preambleLenValid', 'body', 'преамбула не должна превышать 1200 символов')
;
if (!$post->valid())

Набор проверяемых данных

Первоначально вы можете задать набор проверяемых данных в конструкторе:

$validator = new Validation($dataToValidate);

или можете опустить при создании и задать данные позже:

$validator = new Validation();
$validator->setScope($dataToValidate);

В большинстве случаев это не требуется и более удобный способ создания валидатора и задания наюора данных - использовать статический метод ::forScope():

Validation::forScope($_POST)
	->req...
	...
	
	->validate();

Используя метод setScope() вы можете использовать валидатор дважды:

Validation::forScope($_GET);

// проверим $_GET
	->required('id')
	->validate()

// проверим $_POST
->setScope($_POST)
	->required('title')
	->required('body')
	->maxLength('title', 128)
	->maxLength('body', 65536)
	->validate();

Если вы хотите проверить несколько наборов сразу просто расширьте ваш набор с помощью extendScope():

Validation::forScope($_GET)
	->extendScope($_POST);

Проверка

Если вы привыкли работать с исключениями, то просто вызовите метод validate(), который в случае не вылидных данных выбросит \Colibri\Validation\ValidationException. Это исключение содержит все произошедшие ошибки, которые можно получить с помощью метода getErrors().

use Colibri\Validation\ValidationException;
try {
	Validation::forScope([...]);
		->requred(...)
		...
	
		->validate(); // this method throws exception !!!
		
} catch (ValidationException $e) {
	var_dump($e->getErrors());
}

или

$scope
	->req...
	...
	
	->ifNotValid(function(array $errors) {
		... // redirect for example
	})

или

if ($scope->valid()) {
	
}

Правила

required

minLength

maxLength

regex

isIntGt0

isJSON

isEmail

isEqual

is / isNot