geekcom/validator-docs

Biblioteca PHP para validação de documentos do Brasil usando Laravel

3.9.0 2023-02-15 16:57 UTC

README

Biblioteca PHP para validação de documentos do Brasil usando Laravel

Build Status Coverage Status PHPStan Monthly Downloads Total Downloads License

Por favor, considere fazer uma doação, apoie nossas atividades

Para a versão legada compatível com Laravel 5 consulte o branch https://github.com/geekcom/validator-docs/tree/5.x.x

Recursos

  • Validar qualquer documento do Brasil;
  • Código testado e confiável;
  • Open Source;
  • Usado por milhares de sistemas;
  • Aprovado pela comunidade Laravel.

Instalação

No arquivo composer.json, adicione validator-docs como dependência do seu projeto:

"require": {
    "geekcom/validator-docs" : "^3.9"
 },

Depois execute:

composer install

Ou simplesmente execute o comando:

composer require geekcom/validator-docs

Testes

Para executar os testes, basta fazer o seguinte:

  • Instale as dependências do projeto;
composer install
  • Execute os testes.
composer test

Como usar a biblioteca

Agora que os métodos de validação validator-docs Brasil estão disponíveis, será possível usar da seguinte forma:

  • cpf - Verifica se um CPF é valido;
$this->validate($request, [
    'cpf' => 'required|cpf',
]);
  • cnpj - Verifica se um CNPJ é valido;
$this->validate($request, [
    'cnpj' => 'required|cnpj',
]);
  • cnh - Verifica se uma CNH (Carteira Nacional de Habilitação) é válida;
$this->validate($request, [
    'cnh' => 'required|cnh',
]);
  • titulo_eleitor - Verifica se um Título Eleitoral é válido;
$this->validate($request, [
    'titulo_eleitor' => 'required|titulo_eleitor',
]);
  • cpf_cnpj - Verifica se um CPF ou CNPJ é válido;
$this->validate($request, [
    'cpf_cnpj' => 'required|cpf_cnpj',
]);
  • inscricao_estadual - Verifica se uma Inscrição Estadual é valida para uma Unidade Federativa(UF)/Estado;
$this->validate($request, [
    'inscricao_estadual' => 'required|inscricao_estadual:UF',
]);
  • nis - Verifica se um PIS/PASEP/NIT/NIS é válido;
$this->validate($request, [
    'nis' => 'required|nis',
]);
  • cns - Verifica se um Cartão Nacional de Saúde (CNS) é válido;
$this->validate($request, [
    'cns' => 'required|cns',
]);
  • certidao - Verifica se uma certidão de nascimento/casamento/óbito é válida;
$this->validate($request, [
    'certidao' => 'required|certidao',
]);
  • renavam - Verifica se um Registro Nacional de Veículos Automotores (RENAVAM) é válido;
$this->validate($request, [
    'renavam' => 'required|renavam',
]);
  • placa - Verifica se a PLACA de um veículo é válida;
$this->validate($request, [
    'placa' => 'required|placa',
]);
  • ddd - Verifica se um número de DDD é válido;
$this->validate($request, [
    'ddd' => 'required|ddd',
]);
  • formato_cnpj - Verifica se o formato(99.999.999/9999-99) de um CNPJ é válido;
$this->validate($request, [
    'formato_cnpj' => 'required|formato_cnpj',
]);
  • formato_cpf - Verifica se o formato(999.999.999-99) de um CPF é válido;
$this->validate($request, [
    'formato_cpf' => 'required|formato_cpf',
]);
  • formato_cpf_cnpj - Verifica se o formato de um CPF ou de um CNPJ é válido;
$this->validate($request, [
    'formato_cpf_cnpj' => 'required|formato_cpf_cnpj',
]);
  • formato_nis - Verifica se o formato(999.99999-99.9) de um PIS/PASEP/NIT/NIS é válido;
$this->validate($request, [
    'formato_nis' => 'required|formato_nis',
]);
  • formato_certidao - Verifica se o formato(99999.99.99.9999.9.99999.999.9999999-99 ou 99999 99 99 9999 9 99999 999 9999999 99), de uma certidão é válida.
$this->validate($request, [
    'formato_certidao' => 'required|formato_certidao',
]);

Combinando validação e formato

No exemplo abaixo, fazemos um teste onde verificamos a formatação e a validade de um CPF ou CNPJ, para os casos onde a informação deve ser salva em um mesmo atributo:

$this->validate($request, [
    'cpf_or_cnpj' => 'formato_cpf_cnpj|cpf_cnpj',
]);

Exemplo de uso em um controller

Método de validação de exemplo em um controller com todas as possibilidades de validação

public function store(Request $request)
{
    $data = $request->all();

    $this->validate($request, [
        'cpf' => 'required|cpf',
        'cnpj' => 'required|cnpj',
        'cnh' => 'required|cnh',
        'titulo_eleitor' => 'required|titulo_eleitor',
        'nis' => 'required|nis',
        'cns' => 'required|cns',
        'ddd' => 'required|ddd',
        'renavam' => 'required|renavam',
        'placa' => 'required|placa',
        'certidao' => 'required|certidao',
        'inscricao_estadual' => 'required|inscricao_estadual:SP',
    ]);

    dd($data);
}

Observe que para validar uma inscrição estadual é necessário informar a UF

Geradores de documentos para testes

Fique a vontade para contribuir de qualquer forma.

Caso tenha alguma dúvida ou encontre algum bug, abra uma issue ou pesquise por issues antigas.

Contribuidores

Contribuições de qualquer tipo são bem-vindas!