iscosta77 / validators
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.
Requires
- php: ^8.2
Requires (Dev)
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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 reaisValidator::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