Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tongedev/rfb-document
Um pacote PHP para validar/gerar/formatar um número de documento da Receita Federal (CPF/CNPJ)
https://github.com/tongedev/rfb-document
cnpj cnpj-generator cnpj-validator cpf cpf-generator cpf-validador hacktoberfest hacktoberfest2022 laravel php
Last synced: 18 days ago
JSON representation
Um pacote PHP para validar/gerar/formatar um número de documento da Receita Federal (CPF/CNPJ)
- Host: GitHub
- URL: https://github.com/tongedev/rfb-document
- Owner: tongedev
- License: mit
- Created: 2022-03-01T01:45:42.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-10T23:15:23.000Z (almost 2 years ago)
- Last Synced: 2024-11-30T01:48:33.486Z (about 2 months ago)
- Topics: cnpj, cnpj-generator, cnpj-validator, cpf, cpf-generator, cpf-validador, hacktoberfest, hacktoberfest2022, laravel, php
- Language: PHP
- Homepage:
- Size: 170 KB
- Stars: 10
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
------
**RFB Document** é um pacote que te ajuda a lidar com números de cadastro da Receita Federal do Brasil, CPF (cadastro de pessoa física) e CNPJ (cadastro nacional de pessoa jurídica). Através dele é possível gerar números de CPF/CNPJ válidos, validar um número existente e formatá-los. Tudo de maneira simples e prática.
> ❗ IMPORTANTE: Este pacote não realiza nenhuma consulta na Receita Federal, portanto, não verifica a situação atual do documento ou se o mesmo está atrelado a uma pessoa ou empresa específica. Toda a checagem é baseada no algoritmo utilizado para gerar os números de cadastro.
## Requisitos
> **Requer [PHP 8.0+](https://www.php.net/releases/)**
Se você usa o Laravel, verifique a compatibilidade de versões:
| Laravel | RFB Document |
|---------|--------------|
| 8.x | 1.x |
| 9.x | 1.x |## Instalação
Para instalar o pacote, basta usar o [composer](https://getcomposer.org):
```bash
composer require tongedev/rfb-document
```Em caso de aplicações Laravel, não é preciso publicar o pacote nos Providers, isso é feito de forma automática pelo auto discovery, durante a instalação.
## Como usar
### Classes
Uma forma de se usar o **RFB Document** se dá instanciando a classe correspondente ao documento desejado (CPF ou CNPJ) e então usufruindo dos recursos disponíveis:
```php
// no caso de querer manipular CPF
$cpfClass = new Tongedev\RfbDocument\CPFDocument();$cpf = $cpfClass->generate(); // retorno: xxxxxxxxxxx (um número de CPF aleatório)
// no caso de querer manipular CNPJ
$cnpjClass = new Tongedev\RfbDocument\CNPJDocument();$cnpj = $cnpjClass->generate(); // retorno: xxxxxxxxxxx (um número de CNPJ aleatório)
```### Facades
Em aplicações Laravel, é possível tirar proveito do container IoC (inversion of control) presente no framework. Quando o pacote é instalado, suas facades são automaticamente publicadas entre os Providers, permitindo um uso mais rápido dos recursos:
```php
$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (um número de CPF aleatório)$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxx (um número de CNPJ aleatório)
```## Recursos
Os recursos disponíveis são: geração de um novo documento válido, sanitização, formatação e validação de um dado documento. Destacando que as chamadas dos recursos são as mesmas para CPF e CNPJ.
| Recurso | Parâmetro | Retorno |
|------------|--------------------------------------|--------------------------------------|
| generate() | bool \| formatted (default: false) | documento, formatado ou não (string) |
| sanitize() | string \| documentNumber | documento sanitizado (string) |
| format() | string \| documentNumber | documento formatado (string) |
| validate() | string \| documentNumber | (bool) se documento é válido (true) ou não (false) |Todos os exemplos abaixo funcionam para `CPF` e `CPNJ`, bastando apenas alterar a classe utilizada.
```php
$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (cpf sanitizado)$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxxx (cnpj sanitizado)
```E os demais métodos:
```php
$cpf = CPF::generate(true); // retorno: xxx.xxx.xxx-xx (cpf formatado)$cpf = CPF::sanitize('xxx.xxx.xxx-xx'); // retorno: xxxxxxxxxxx (cpf sanitizado)
$cpf = CPF::format('xxxxxxxxxxx'); //retorno: xxx.xxx.xxx-xx (cpf formatado)
$cpf = CPF::validate('xxx.xxx.xxx-xx'); // retorno: booleano dependendo do valor passado no parâmetro
$cpf = CPF::validate('xxxxxxxxxxx'); // é possível passar documento sanitizado também para validação
```## Exceções
Caso as funções recebam valores ou cadeias de caracteres que não correspondem a um conjunto de dígitos esperado de um dos documentos, uma exceção é lançada:
```php
$cpf = CPF::format('123456ASasdfas'); // esse código irá gerar uma exceção do tipo `RfbDocumentException`.
```## Contribuindo
Obrigado por considerar contribuir para o RFB Document. Tudo sobre contribuições está descrito [aqui](CONTRIBUTING.md).
👋 Siga o autor [@devatreides](https://twitter.com/tongedev) no Twitter para saber das últimas novidades e conhecer outros projetos. Diga oi!
## Licença
RFB Document é um software open source licenciado sob a [Licença MIT](LICENSE.md).