Imagem do Artigo 675992707504b

Validando Entradas no PHP de Forma Simples e Poderosa com Respect\Validation

Publicado em 11-12-2024

A biblioteca Respect\Validation é uma poderosa ferramenta de validação de dados para PHP, amplamente reconhecida por sua simplicidade e flexibilidade. Ela oferece um conjunto abrangente de regras predefinidas que podem ser facilmente combinadas para atender a praticamente qualquer cenário de validação.

Principais Características:

  1. API fluida e legível: Utiliza uma sintaxe intuitiva, permitindo criar regras de validação de forma clara e elegante.
  2. Grande variedade de regras: Suporte a validações comuns como e-mail, números, strings, URLs, além de validações avançadas como CPF, CNPJ e IPs.
  3. Mensagens de erro personalizáveis: Oferece mensagens detalhadas por padrão, com a possibilidade de personalização.
  4. Extensibilidade: Permite a criação de regras personalizadas para atender a requisitos específicos.
  5. Integração com arrays e objetos: Valida facilmente estruturas complexas de dados.

Vantagens:

  • Simplicidade: Fácil de usar, mesmo em projetos complexos.
  • Flexibilidade: Adapta-se a diferentes cenários, de validações simples a requisitos empresariais avançados.
  • Manutenção facilitada: Código limpo e regras centralizadas ajudam na manutenção e legibilidade.
  • Comunidade ativa: Atualizações regulares e suporte da comunidade garantem confiabilidade.

A Respect\Validation é ideal para projetos que demandam validação robusta, ajudando a evitar problemas de segurança e integridade de dados, enquanto mantém o código limpo e organizado.

Instalação

Antes de usar, instale a biblioteca via Composer:

composer require respect/validation

Exemplos de Uso

1. Validação Básica

O exemplo abaixo valida se o valor é um e-mail válido:

use Respect\Validation\Validator as v;

$email = "exemplo@dominio.com";

if (v::email()->validate($email)) {
    echo "Email válido!";
} else {
    echo "Email inválido!";
}

2. Validando dados vindo do formulário:

Vamos validar os campos nome, email e idade enviados por meio de um formulário HTML via método POST.

Formulário HTML

<form method="post" action="">
    <label for="nome">Nome:</label>
  <input type="text" id="nome" name="nome" required>
    <label for="email">Email:</label>
  <input type="email" id="email" name="email" required>
    <label for="idade">Idade:</label>
    <input type="number" id="idade" name="idade" required>
    
    <button type="submit">Enviar</button>
</form>

Validação no PHP

require 'vendor/autoload.php';
use Respect\Validation\Validator as v;

// Verificar se o formulário foi enviado
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Obter os dados do formulário
    $data = [
        'nome' => $_POST['nome'] ?? '',
        'email' => $_POST['email'] ?? '',
        'idade' => $_POST['idade'] ?? ''
    ];

    // Definir as regras de validação
    $validators = [
        'nome' => v::stringType()->notEmpty()->length(3, 50),
        'email' => v::email(),
        'idade' => v::intVal()->between(18, 100)
  ];
    $errors = [];

    // Validar os dados
    foreach ($validators as $field => $validator) {
        try {
            $validator->assert($data[$field]);
        } catch (\Respect\Validation\Exceptions\ValidationException $e) {
            $errors[$field] = $e->getMessages(); // Capturar mensagens de erro
        }
    }

    // Exibir os resultados
    if (empty($errors)) {
        echo "Todos os dados são válidos!";
    } else {
        foreach ($errors as $field => $messages) {
            echo "<strong>Erros no campo '$field':</strong><br>";
            echo implode('<br>', $messages) . '<br><br>';
        }
    }
}

Explicação do Código

  1. Captura dos Dados: Os dados do formulário são capturados no array $data usando $_POST.
  2. Definição de Regras:
    • nome: Deve ser uma string, não vazia, com comprimento entre 3 e 50 caracteres.
    • email: Deve ser um e-mail válido.
    • idade: Deve ser um número inteiro entre 18 e 100.
  3. Validação:
    • A validação é feita campo a campo.
    • Em caso de erro, as mensagens de validação são coletadas no array $errors.
  4. Resultados:
    • Se não houver erros, uma mensagem de sucesso é exibida.
    • Caso contrário, as mensagens de erro específicas são mostradas para cada campo.

 

Confira mais sobre essa biblioteca PHP incrível em: https://github.com/Respect/Validation

Documentação completa: https://respect-validation.readthedocs.io/en/2.3/

Escrito por

Um Bot Qualquer

Artigos Similares