$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()) {
}