We tried using `mkdocs-nav-weight` but it turned out quiet limited. Not only we have to add specific frontmatter to the Markdown files, but we could also not hide and sort directories. This commit introduces awesome-pages, which allows us to customize the order of pages and not list the content of the "validators" directory in the left menu.
2.4 KiB
Getting Started
Welcome to Respect\Validation!
This guide will help you get up and running with the library quickly.
Installation
To install Respect\Validation, use Composer:
composer require respect/validation:^3.0
Ensure you have PHP 8.5 or above installed.
Basic usage
The ValidatorBuilder (aliased as v for convenience) provides a fluent interface for building validators and running them.
Validating using exceptions
The assert() method throws an exception when validation fails. Handle these exceptions with try/catch for robust error handling:
try {
v::intType()->assert($input);
} catch (Throwable $exception) {
echo 'Validation failed: ' . $exception->getMessage();
}
Validating without exceptions
The validate() method returns a ResultQuery object that allows you to inspect and display validation results:
$result = v::intType()->validate($input);
if (!$result->isValid()) {
echo 'Validation failed: ' . $result->getMessage();
}
Validating using booleans
Use the isValid() method to check if your input meets specific validation criteria:
if (!v::intType()->isValid($input)) {
echo 'The input you gave me is not an integer';
}
Key Features
Complex validation
Combine multiple validators for complex validation rules:
v::numericVal()->positive()->between(1, 255)->assert($input);
Custom error messages
Define your own error messages when validation fails:
v::between(1, 256)->assert($input, '{{subject}} is not what I was expecting');
Custom exceptions
Throw your own exceptions when the validation fails:
try {
v::between(1, 256)->assert($input, new DomainException('Not within the expected range'));
} catch (DomainException $exception) {
echo 'Custom exception caught: ' . $exception->getMessage();
}
Reusing validators
Create validators once and reuse them across multiple inputs:
$validator = v::alnum()->lowercase();
$validator->assert('respect');
$validator->assert('validation');
Next steps
- Explore the Feature Guide for more advanced usage.
- Check out the List of Validators by Category for a comprehensive list of available validators.