Validator#
Meritum\Validation\Validator
The primary interface for validation. Register ValidationModule and inject Validator::class into your services.
Methods#
/**
* @param array<string, array<int|string, mixed>> $schema
* @param array<string, mixed> $input
*/
public function validate(array $schema, array $input): ValidationResult;Validates $input against $schema and returns an immutable ValidationResult
. The schema maps field names to a list of rule names and parameters. See the guide
for schema syntax, presence rules, dot notation, and wildcard expansion.
Example#
use Meritum\Validation\Validator;
final class RegisterUserAction
{
public function __construct(private readonly Validator $validator) {}
public function execute(array $input): void
{
$result = $this->validator->validate([
'username' => ['required', 'string', 'lengthBetween' => [3, 32]],
'email' => ['required', 'email'],
'password' => ['required', 'string', 'lengthMin' => 8],
'role' => ['optional', 'in' => ['user', 'admin']],
], $input);
if (!$result->passed()) {
throw new ValidationException($result->getErrors());
}
}
}