Validação de dados em PHP com a biblioteca Respect\\Validation

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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/validation

Apó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.

Recommendations