Biblioteca PHP para emitir boletos bancários
Enviado por Francisco Luz (franciscoferreiraluzΘyahoo·com·au):
“Para baixar a biblioteca Boleto PHP visite [github.com/…] Este pacote contém um código otimizado no estilo OOP e a integração se dá por meio de apenas 3 linhas de código para enviar a sua lista de argumentos. Segue abaixo link do manual completo para integrar a biblioteca a sua aplicação, bem como criar novos plugins (implementações) para novos bancos e carteiras.” [referência: drupalista.com.br]
• Publicado por Augusto Campos em
2011-06-30
Lembremos do PHPBoleto que é ultra bacana e roda em cima de muitas bandeiras conhecidas, por isso jamais devemos focar no “reinventar a roda”.
Parabéns pela iniciativa.
@little_oak Concordo que scripts como o Boletophp são de grande ajuda. O principal problema é integração, implementação e manutenção.
Boletophp até a sua versão 0.17 não é nada flexivel. Para se implementar um novo banco é necessário fazer uma cópia do script inteiro e não havia a separação entre a lógica do programa e a interface, neste caso o html do boleto.
Para integrar mais de um banco a sua aplicação vc precisava fazer um monte de remendos no script.
Agora a partir da versão 1.0 Beta o script passou a ser uma biblioteca de verdade, pois a lógica fica totalmente separada da interface e a biblioteca pode ser atualizada sem quebrar a aplicação integradora, pois a biblioteca pode, e de fato deve, residir fora da aplicação principal.
Grande abraço,
Olá,
Concordo que não vale a pena reinventar a roda. E utilizei muito o PHPBoleto, depois o BoletoPHP, que tem um código estável. Mas ele não evoluiu com a linguagem – e realmente não implementou a orientação a objeto.
Eu trabalho com o framework symfony, fiz uma implementação como BoletoPHP e não ficou legal. Então, para um outro projeto, fiz uma reescrita completa do código.
Ele está no GitHub há algum tempo, mas eu acabei não divulgando muito. Minha abordagem é diferente do Francisco Luz, apesar de com o mesmo objetivo.
1) Apesar de se chamar sfBoletoPlugin, ele pode ser utilizado autonomamente em outros projetos não-symfony
2) Os templates foram completamente reescritos em XHTML+CSS e quebrados em arquivos menores reaproveitáveis. De modo geral, os layouts dos bancos são similares, então, não é preciso refazer os layouts, apenas alimentá-los.
O boleto está tableless (em divs, não em table). O código gerado valida XHTML no W3C.
Como os templates foram quebrados, foi possível montar layouts distintos:
- Página (tradicional): http://symfony.rgou.net/boleto_demo/boleto
- Carnê (“deitado”): http://symfony.rgou.net/boleto_demo/carne
- Blocos de boletos: esta abordagem permite um recurso muito interessante – é possível gerar blocos de boletos (que são impressos em XHTML com quebra de página, sem necessidade de gerar um a um em páginas diferentes. Isto é automaticamente tratado, de modo que apenas um CSS é carregado, e os vários boletos ficam dentro do )
E os templates são templates mesmo: arquivos HTML com placeholders.
3) Mesmo código, bancos diferentes. A geração do boleto é com um factory, assim é possível mudar de banco simplesmente trocando a referência ao layout.
Infelizmente, só fiz o layout do HSBC, que foi o que necessitei. Mas, como no projeto do post, é possível implementar outros.
O que realmente acho um retrabalho e reinventar a roda é ter dois projetos com o mesmo foco. Neste caso, sugiro que a gente converse e junte as idéias (ou ao menos tentemos…)
[]‘s
Rafael Goulart
Opa! Só faltou colocar o link do projeto:
https://github.com/rafaelgou/sfBoletoPlugin
[]‘s
Rafael Goulart
@Rafael Goulart
Transferi a conversa para https://github.com/rafaelgou/sfBoletoPlugin/issues/1 em seu repositorio, assim se alguém mais quizer juntar-se a discussão todos são notificados.
Abraço,