geekcom / validator-docs
Biblioteca PHP para validação de documentos do Brasil usando Laravel
Fund package maintenance!
nubank.com.br/pagar/518o5/zVBzxd00Sb
Installs: 974 725
Dependents: 4
Suggesters: 0
Security: 0
Stars: 564
Watchers: 27
Forks: 96
Open Issues: 6
Requires
- php: ^7.3|^8.0
- thiagocfn/inscricaoestadual: ^1.1
Requires (Dev)
- orchestra/testbench: ^6.0
- php-coveralls/php-coveralls: ^2.5
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^8.4|^9.4
- squizlabs/php_codesniffer: *
- dev-master
- 5.x-dev
- 3.10.0
- 3.9.0
- 3.8.0
- 3.7.1
- 3.7.0
- 3.6.0
- 3.5.4
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.5.2
- 1.5.1
- 1.5.0
- v1.4
- v1.3
- v1.2
- v1.1
- v1.0
- dev-dependabot/composer/symfony/process-5.4.46
- dev-dependabot/composer/symfony/http-foundation-5.4.46
- dev-update/docs_chagelog
This package is auto-updated.
Last update: 2024-11-06 20:34:27 UTC
README
Biblioteca PHP para validação de documentos do Brasil usando Laravel
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', ]);
- passaporte - Verifica se uma Passaporte Brasileiro é válido;
$this->validate($request, [ 'passaporte' => 'required|passaporte', ]);
- 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
ou99999 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', 'passaporte' => 'required|passaporte', ]); dd($data); }
Observe que para validar uma inscrição estadual é necessário informar a UF
Geradores de documentos para testes
- CNH - http://4devs.com.br/gerador_de_cnh
- TÍTULO ELEITORAL - http://4devs.com.br/gerador_de_titulo_de_eleitor
- CNPJ - https://geradornv.com.br/gerador-cnpj/
- CPF - https://geradornv.com.br/gerador-cpf/
- NIS - https://www.4devs.com.br/gerador_de_pis_pasep
- CNS - https://geradornv.com.br/gerador-cns/
- CERTIDÕES - https://www.4devs.com.br/gerador_numero_certidoes
- INSCRIÇÃO ESTADUAL - https://www.4devs.com.br/gerador_de_inscricao_estadual
- RENAVAM - https://www.4devs.com.br/gerador_de_renavam
- PLACA - https://www.4devs.com.br/gerador_de_placa_automoveis
- Passaporte Brasileiro - https://geradornv.com.br/gerador-passaporte/
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!