samuelpietro / cnpjutils
Funções úteis para gerar e validar números de CNPJ no novo padrão alfanumérico.
Installs: 35
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
pkg:composer/samuelpietro/cnpjutils
Requires
- php: >=8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2025-12-11 22:34:06 UTC
README
CNPJUtils é uma biblioteca PHP de código aberto que oferece funções úteis para trabalhar com o novo padrão de CNPJ alfanumérico do Brasil. Esta biblioteca permite calcular dígitos verificadores e validar o formato do CNPJ conforme o novo padrão de doze caracteres alfanuméricos e dois dígitos numéricos.
Funcionalidades
- Geração de CNPJ: Cria um CNPJ aleatório que respeita o formato e as regras de validação, podendo ser usado para testes ou preenchimentos automáticos.
- Validação de CNPJ: Confirma se um CNPJ segue o formato padrão e está devidamente estruturado, validando a conformidade dos caracteres e a correta formação dos dígitos verificadores.
- Formatar/Mascarar: Formata um CNPJ alfanumérico para um formato legível, com a máscara padrão de pontuação e separação de caracteres.
- Remover mascara: Remove a formatação de um CNPJ, retornando apenas os caracteres alfanuméricos.
- Cálcular dígitos verificadores (DV): Gera os dois dígitos verificadores para um CNPJ alfanumérico, garantindo que o número esteja correto conforme as regras estabelecidas pela legislação brasileira.
Estrutura do Projeto
A estrutura do projeto é organizada para facilitar o desenvolvimento modular.
/project-root
├── src
│ ├── Interfaces
│ │ └── CNPJInterface.php # Interface para validação e geração de CNPJ
│ ├── CNPJ.php # Classe principal para validação e geração de CNPJ
│ └── DigitoVerificador.php # Classe auxiliar para cálculo do dígito verificador
├── tests
│ ├── CNPJTest.php # Testes unitários para validação e geração de CNPJ
│ └── DigitoVerificadorTest.php # Testes unitários para cálculo do dígito verificador
Requisitos
- PHP versão 8.0 ou superior
Instalação
-
Para instalar a biblioteca via Composer, execute o seguinte comando:
composer require samuelpietro/cnpjutils
Uso
-
Para gerar um CNPJ:
use CNPJUtils\CNPJ; CNPJ::gerar(); // Retorna uma ‘string’ contendo um CNPJ aleatório
-
Para validar a formatação/máscara de um CNPJ:
use CNPJUtils\CNPJ; CNPJ::validar('12ABC34501DE35'); // Retorna true se o CNPJ for válido e false se for inválido
-
Para mascarar um CNPJ:
use CNPJUtils\CNPJ; CNPJ::mascarar('12ABC34501DE35'); // Retorna uma ‘string’ contendo o CNPJ formatado
-
Para remover a máscara de um CNPJ:
use CNPJUtils\CNPJ; CNPJ::removerMascara('12.ABC.345/01DE-35'); // Retorna uma ‘string’ contendo o CNPJ sem máscara
-
Para calcular os dígitos verificadores de um CNPJ:
use CNPJUtils\DigitoVerificador(); DigitoVerificador::calcular('12ABC34501DE'); // Retorna uma ‘string’ contendo os dígitos verificadores
Documentação Técnica
1. Cálculo dos Dígitos Verificadores do CNPJ Alfanumérico
- O CNPJ é composto por doze caracteres alfanuméricos e dois dígitos verificadores (DV) calculados em duas etapas.
- Os pesos para o cálculo são distribuídos de 2 a 9, aplicados da direita para a esquerda, reiniciando após o oitavo dígito.
- A soma ponderada dos valores ASCII dos caracteres determina os dígitos verificadores conforme o módulo 11.
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests para adicionar melhorias e novas funcionalidades.
Para enviar pull requests siga os passos abaixo.
- Faça um fork do repositório
- Crie uma branch (
git checkout -b minha-feature) - Commit as suas alterações (
git commit -m 'Minha nova feature') - Envie para o repositório (
git push origin minha-feature) - Abra um pull request
Licença
Este projeto está licenciado sob a Licença MIT, que permite o uso, modificação e distribuição do ‘software’ para qualquer finalidade, desde que a atribuição ao autor original, Samuel Pietro, seja mantida em todas as cópias, modificações ou distribuições do ‘Software’.
© 2024 Samuel Pietro / CNPJUtils