umbrella/boleto

YaBoleto é uma biblioteca para geração de boletos bancários de forma simples em PHP.

Installs: 2 300

Dependents: 1

Stars: 19

Watchers: 8

Forks: 4

Open Issues: 2

Language: PHP

v1.5.0 2014-09-03 20:58 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Latest Unstable Version

SensioLabsInsight

O YaBoleto e um novo componete de boleto bancario em PHP, mas qual a diferença dos outros? Simples... Ele foi projetado de forma simples e Orientada a Objetos. Seguimos os padrões PSR-0, PSR-1 e PSR-2, utilizamos padrões de projetos onde seria necessário e Voilà. O YaBoleto vai mudar a forma de como você trabalha com boletos bancários.

Quer utilizar o YaBoleto? Leia nossa documentaçao e veja como é simples.

Instalação

Composer

Se você já conhece o Composer (o que é extremamente recomendado), simplesmente adicione a dependência abaixo à diretiva "require" no seu composer.json:

$ composer require umbrella/boleto

Sim, só isso! Lembre-se de que cada banco possui alguma particularidade, mas em geral são estes parâmetros os obrigatórios.

O projeto umbrellaTech/demo possui um exemplo funcional de cada banco, você pode verificar lá quais são os parâmetros necessários para cada banco.

Bancos suportados

Atualmente o YaBoleto funciona com os bancos abaixo:

Banco Carteira/Convenio Implementado Testado Banco do Brasil 17, 18, 21 Sim Sim Banrisul x Não Não Bradesco 06, 03 Sim Sim Caixa Economica SR Sim Sim HSBC CNR, CSB Não Nao Itau 157 Não Não Itau 175, 174, 178, 104, 109 Não Não Real 57 Sim Sim Santander 101, 102, 201 Sim Sim

Uso

A forma mais simples é utilizar o Builder.

use Carbon\Carbon;
use Umbrella\YaBoleto\Builder\BoletoBuilder;

// sacado...
$nomeSacado      = "John Doe";
$documentoSacado = "090.076.684-04";
$enderecoSacado  = array(
    "logradouro" => "Setor de Clubes Esportivos Sul (SCES) - Trecho 2 - Conjunto 31 - Lotes 1A/1B",
    "cep"        => "70200-002",
    "cidade"     => "Brasília",
    "uf"         => "DF"
    );

// cedente...
$nomeCedente      = "ACME Corporation Inc.";
$documentoCedente = "01.122.241/0001-76";
$enderecoCedente  = array(
    "logradouro" => "Setor de Clubes Esportivos Sul (SCES) - Trecho 2 - Conjunto 31 - Lotes 1A/1B",
    "cep"        => "70200-002",
    "cidade"     => "Brasília",
    "uf"         => "DF"
    );

$builder = new BoletoBuilder(BoletoBuilder::BRADESCO);

$boleto  = $builder->sacado(BoletoBuilder::PESSOA_FISICA, $nomeSacado, $documentoSacado, $enderecoSacado)
                   ->cedente($nomeCedente, $documentoCedente, $enderecoCedente)
                   ->banco("0564", "0101888")
                   ->carteira("06")
                   ->convenio("0101888", "77000009017")
                   ->build(250, "77000009017", new Carbon("2015-03-24"));

echo $boleto->getLinhaDigitavel() // 23790.56407 67700.000903 17010.188807 8 63770000025000

A forma Orientada a Objetos é um pouco mais trabalhossa, mas permite maior flexibilidade.

use Carbon\Carbon;

use Umbrella\YaBoleto\Bancos\Bradesco\Convenio;
use Umbrella\YaBoleto\Bancos\Bradesco\Bradesco;
use Umbrella\YaBoleto\Bancos\Bradesco\Carteira\Carteira06;
use Umbrella\YaBoleto\Bancos\Bradesco\Boleto\Bradesco as BoletoBradesco;

use Umbrella\YaBoleto\PessoaFisica;
use Umbrella\YaBoleto\Cedente;
use Umbrella\YaBoleto\Sacado;

// sacado...
$nomeSacado      = "John Doe";
$documentoSacado = "090.076.684-04";
$enderecoSacado  = array(
    "logradouro" => "Setor de Clubes Esportivos Sul (SCES) - Trecho 2 - Conjunto 31 - Lotes 1A/1B",
    "cep"        => "70200-002",
    "cidade"     => "Brasília",
    "uf"         => "DF"
    );

// cedente...
$nomeCedente      = "ACME Corporation Inc.";
$documentoCedente = "01.122.241/0001-76";
$enderecoCedente  = array(
    "logradouro" => "Setor de Clubes Esportivos Sul (SCES) - Trecho 2 - Conjunto 31 - Lotes 1A/1B",
    "cep"        => "70200-002",
    "cidade"     => "Brasília",
    "uf"         => "DF"
    );

$banco        = new Bradesco("0564", "0101888");
$carteira     = new Carteira06();

$convenio     = new Convenio($banco, $carteira, "0101888", "77000009017");
$pessoaFisica = new PessoaFisica($nomeSacado, $documentoSacado, $enderecoSacado);
$sacado       = new Sacado($pessoaFisica);
$cedente      = new Cedente($nomeCedente, $documentoCedente, $enderecoCedente);

$boleto       = new BoletoBradesco($sacado, $cedente, $convenio);

$boleto->setValorDocumento(50)
       ->setNumeroDocumento(2)
       ->setDataVencimento(new Carbon('2014-09-02'));

echo $boleto->getLinhaDigitavel() // 23790.56407 67700.000903 17010.188807 8 63770000025000

Contribua

Toda contribuição é bem vinda. Se você deseja adaptar o YaBoleto a algum outro banco, fique à vontade para explorar o código, veja como é bastante simples integrar qualquer banco à biblioteca. Para instalar clone o projeto dentro da pasta Umbrella/YaBoleto.

git clone https://github.com/umbrellaTech/ya-boleto-php.git ya-boleto-php/Umbrella/YaBoleto

Ou usando o composer.

php composer.phar create-project umbrella/boleto ya-boleto-php/Umbrella/YaBoleto dev-master

Isso se deve por conta do autoloader que segue a PSR-0.

Demo

A aplicação de demonstração está no repositório YaBoleto Demo

Licença

  • MIT License