Search by

iscosta77 / validators

iscosta77

Validators — regras de validacao zero-dependencia para PHP: required, email, min/max, same, cpf, cnpj, url, date, unique (callback) e custom. Mensagens em pt/en/es.

Package info

github.com/iscosta77/hermes-validators

Language:HTML

pkg:composer/iscosta77/validators

Statistics

Installs: 5

Dependents: 1

Suggesters: 0

Stars: 0

v1.0.2 2026-08-26 18:51 UTC

This package is auto-updated.

Last update: 2026-10-31 03:29:21 UTC


README

Parte da família hermes_* — ferramentas completas, interligadas e com estrutura de banco para quem programa PHP na unha. Criado e mantido por Hermes Agent (Nous Research) · publicado por Ildefonso Costa.

Validação zero dependência (nem PDO precisa): regras encadeadas, mensagens pt / en / es, CPF e CNPJ com dígito verificador de verdade — e a regra unique ligada ao seu banco via callback.

Instalação

composer require hermes/validators

Uso

use Hermes\Validators\Validator;

$v = Validator::make(
    [
        'nome'   => 'Bruna',
        'email'  => 'bruna@teste.com',
        'senha'  => 'abc123',
        'senha2' => 'abc123',
        'cpf'    => '529.982.247-25',
        'idade'  => 26,
    ],
    [
        'nome'   => 'required|min:3',
        'email'  => 'required|email|unique',
        'senha'  => 'required|min:6|same:senha2',
        'cpf'    => 'cpf',
        'idade'  => 'integer|min:18',
    ],
    'pt', // idioma das mensagens
    [
        // true = valor disponível (único); consulta seu banco aqui
        'email' => fn (mixed $valor) => !$consulta->existe('usuarios', 'email', $valor),
    ],
);

if ($v->passes()) {
    // salvar...
} else {
    echo $v->firstError();          // primeira mensagem
    $v->errors();                   // ['campo' => 'mensagem', ...]
}

Regras

Regra Exemplo Descrição
required 'nome' => 'required' Campo obrigatório
email 'email' => 'email' Email válido
min:n 'senha' => 'min:6' Mínimo de n caracteres
max:n 'bio' => 'max:200' Máximo de n caracteres
size:n 'cep' => 'size:9' Exatamente n caracteres
integer 'idade' => 'integer' Número inteiro
numeric 'preco' => 'numeric' Número (int ou float)
same:campo 'senha' => 'same:senha2' Igual a outro campo
url 'site' => 'url' URL válida
date 'nasc' => 'date' Data AAAA-MM-DD válida
cpf 'cpf' => 'cpf' CPF válido (aceita pontuação)
cnpj 'cnpj' => 'cnpj' CNPJ válido (aceita pontuação)
regex:/padrão/ 'cep' => 'regex:/^\d{5}-\d{3}$/' Expressão regular
unique 'email' => 'unique' Disponível? (via callback)
Closure 'x' => fn ($v) => strlen($v) >= 5 Regra customizada

Métodos utilitários

  • Validator::validaCpf($cpf): bool — dígitos verificadores reais
  • Validator::validaCnpj($cnpj): bool

Família hermes_*

Este é o alicerce. Os irmãos usam a validação:

Pacote Status
hermes/validators ✅ v1.0.0 — este
hermes/crop-image em desenvolvimento (crop, thumb com cache, WebP, watermark)
hermes/upload em desenvolvimento (upload validado + integração crop-image)
hermes/upload-multiple em desenvolvimento (multi-upload)
hermes/gallery em desenvolvimento (galerias com banco, 1:N)

Licença

MIT © 2026 Hermes Agent (Nous Research) — criador e mantenedor · Ildefonso Costa — publicador