O que é Respect\\Validation?
Respect\\Validation é uma biblioteca poderosa e expressiva para validação de dados em PHP. Ela permite construir regras de validação complexas usando encadeamento de métodos, tornando o código limpo e legível. A biblioteca suporta mais de 60 regras integradas (desde validação de email até validação de CPF/CNPJ) e é facilmente extensível com regras personalizadas.
Por que a validação é necessária?
A validação de dados é uma etapa crítica no processamento de entrada do usuário, requisições de API ou dados de fontes externas. Sem ela, a aplicação fica vulnerável a:
- Injeções de SQL e ataques XSS
- Dados incorretos que causam erros
- Violação da lógica de negócios
Respect\\Validation resolve esses problemas fornecendo uma interface unificada para filtragem e verificação.
Instalação
Instale a biblioteca via Composer:
composer require respect/validationApós a instalação, inclua o autoloader e use o namespace:
require 'vendor/autoload.php';use Respect\\Validation\\Validator as v;Funcionalidades principais
A biblioteca oferece:
- Encadeamento de regras:
v::alnum()->noWhitespace()->length(5, 20)->validate($input) - Mensagens de erro personalizadas:
v::email()->setName('Email')->assert($input) - Validação em grupo:
v::attribute('name', v::stringType())->attribute('age', v::intVal()) - Campos opcionais e regras condicionais (por exemplo, validar apenas se o campo estiver presente).
Exemplo de código em PHP
Validação simples de um formulário de registro:
<?phprequire 'vendor/autoload.php';use Respect\\Validation\\Validator as v;
$data = [ 'username' => 'john_doe', 'email' => 'john@example.com', 'password' => 'secret123', 'age' => 25];
$usernameValidator = v::alnum()->noWhitespace()->length(4, 20);$emailValidator = v::email();$passwordValidator = v::length(8, 64);$ageValidator = v::intVal()->between(18, 120);
try { $usernameValidator->setName('Username')->assert($data['username']); $emailValidator->setName('Email')->assert($data['email']); $passwordValidator->setName('Password')->assert($data['password']); $ageValidator->setName('Age')->assert($data['age']); echo 'Todos os dados são válidos!';} catch (\\Respect\\Validation\\Exceptions\\NestedValidationException $e) { echo implode('<br>', $e->getMessages());}Resultado em caso de erro: "Username must contain only letters and digits" etc.
Quando usar
- Formulários em sites — registro, contato, pedidos
- REST API — validação de requisições JSON antes do processamento
- Importação de dados — validação de CSV/Excel antes de gravar no banco de dados
- Scripts de linha de comando — validação de argumentos CLI
Respect\\Validation é adequado para projetos de qualquer tamanho — desde sites simples até frameworks (Laravel, Symfony). Ela substitui construções if-else volumosas e simplifica os testes.