Respect/Validation para PHP: guia completo com exemplos práticos

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

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

Recommendations