Giter VIP home page Giter VIP logo

rfb-document's Introduction

RFB-document

Total Downloads Issues Open Total Downloads Latest Version License


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+

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:

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:

// 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:

$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.

$cpf = CPF::generate(); // retorno: xxxxxxxxxxx (cpf sanitizado)

$cnpj = CNPJ::generate(); // retorno: xxxxxxxxxxxxxxx (cnpj sanitizado)

E os demais métodos:

$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:

$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.

👋 Siga o autor @devatreides 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.

rfb-document's People

Contributors

dansysanalyst avatar devatreides avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

dansysanalyst

rfb-document's Issues

Adicionar Passporte

Replicar as funcionalidades disponíveis para em CPF e CNPJ para Passporte.

Ponto de atenção: o Passporte varia entre países, então o foco é o Brasil. Outros passportes são bem-vindos mas sempre mantendo o brasileiro como padrão.

  • generate
  • sanitize
  • format
  • validate

Adicionar RG

Replicar as funcionalidades disponíveis para em CPF e CNPJ para RG.

Ponto de atenção: o RG varia entre estados, é preciso verificar o impacto disso e possivelmente permitir que o usuário escolha de qual padrão será gerado, adotando algum como padrão

  • generate
  • sanitize
  • format
  • validate

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.