Respect/Validation para PHP: guia completo com exemplos práticos
Respect/Validation é uma biblioteca poderosa e elegante para validação de dados em PHP. Diferente das funções nativas do PHP (como filter_var ou expressões regulares), o Respect/Validation oferece uma interface orientada a objetos e encadeada (fluent) para construir regras de validação complexas. A biblioteca permite criar verificações legíveis e autodocumentadas, fáceis de manter e expandir.
Por que usar esta biblioteca? Em qualquer aplicação web, é necessário validar a entrada do usuário: e-mails, senhas, URLs, endereços IP, datas, intervalos numéricos e muito mais. Sem um sistema de validação, o código rapidamente se transforma em uma bagunça de if-else e expressões regulares. O Respect/Validation resolve esse problema fornecendo mais de 100 regras prontas (validadores) que podem ser combinadas para criar cadeias de verificação complexas. A biblioteca também suporta mensagens de erro personalizadas em vários idiomas, tornando-a ideal para projetos internacionais.
A principal característica são as cadeias de validação. Você pode combinar várias regras em uma única cadeia, e elas serão aplicadas sequencialmente. Se pelo menos uma regra falhar, a validação é interrompida (por padrão) e um erro é retornado. Isso permite escrever código compacto, mas extremamente expressivo.
Instalação
A instalação é feita via Composer, o gerenciador de pacotes padrão do PHP. Execute no terminal na raiz do seu projeto:
composer require respect/validation
Após a instalação, inclua o autoload do Composer no seu arquivo PHP:
require_once 'vendor/autoload.php';
Início rápido
Um exemplo mínimo funcional de validação de e-mail e senha:
use Respect\Validation\Validator as v;
$email = 'usuario@exemplo.com';
$senha = 'SenhaF0rte!';
// Criando uma cadeia de validação
$validador = v::email()->length(6, 100)->notEmpty();
if ($validador->validate($email)) {
echo "E-mail válido!";
} else {
// Obtendo o array de erros
$erros = $validador->getMessages();
print_r($erros);
}
// Validação de senha
$validadorSenha = v::alnum()->noWhitespace()->length(8, 32);
if ($validadorSenha->validate($senha)) {
echo "Senha válida!";
}
Neste exemplo, v::email() verifica o formato do e-mail, length(6, 100) verifica o comprimento da string e notEmpty() garante que o valor não está vazio. Todas as regras estão encadeadas.
Principais métodos e classes
Vamos explorar 8 métodos (regras) essenciais da biblioteca. Cada regra é um método estático da classe Respect\Validation\Validator (geralmente importada como v).
1. v::email()
Assinatura: public static function email(): Validator
O que faz: Verifica se o valor é um endereço de e-mail válido de acordo com as RFCs 5321/5322.
Exemplo:
$validador = v::email();
var_dump($validador->validate('teste@teste.com')); // true
var_dump($validador->validate('nao-e-email')); // false
2. v::alnum()
Assinatura: public static function alnum(string $caracteresAdicionais = ''): Validator
O que faz: Verifica se a string contém apenas letras (a-z, A-Z) e números (0-9). É possível passar caracteres adicionais permitidos.
Exemplo:
$validador = v::alnum();
var_dump($validador->validate('abc123')); // true
var_dump($validador->validate('ola mundo')); // false (espaço não permitido)
// Com caracteres adicionais
$validadorComTracos = v::alnum('-');
var_dump($validadorComTracos->validate('meu-nome')); // true Também na biblioteca
GameplayKit para Swift: guia completo com exemplos práticos
PM2 — Monitoramento de aplicações JavaScript (Node.js)
Trabalhando com YAML em Swift: biblioteca Yams para iOS/macOS