Quem trabalha com PHP sabe que fazer relatórios nessa plataforma é algo meio
complicado.
Tem aqueles que gostam de usar libs como FPDF, DomPDF e congêneres mas, não existe, não que eu tenha conhecimento, uma ferramenta para geração de relatórios escrita em PHP que seja tão eficiente quanto a combinação Jasper/iReport.
Apenas para contextualizar, falarei rapidamente aqui sobre o JasperServer e irei em outro post ou quem sabe em um screencast abordar melhor como funciona o Jasper, iReport e JasperServer.
Este post é para aqueles que de alguma maneira já geram via PHP, relatórios criados no iReport normalmente via scripts shell executados pela função exec.O JasperServer é um Report Server que possui uma versão paga e outra open-source (essa que eu uso) que já tem todo o stack necessário para gerar os relatórios criados pelo iReport, ele é escrito em Java e por default é executado em cima do Apache Tomcat.
Ele possui uma interface de gerenciamento dos repositórios para onde são importados os relatórios que é bem simples e prática de se usar.
Como eu falei anteriormente, pretendo escrever um post ou gravar um screencast mais detalhado sobre o JasperServer, Jasper e iReport, se quiser dar uma olhada e ver mais por si só, vá ao site: http://jasperforge.org/projects/jasperserver
Se você não vai falar mais sobre o JasperServer, sobre o que se trata esse post então?
Eu criei uma pequena lib em meus tempos de folga que faz a integração do PHP com o JasperServer e os resultados que obtive até o momento são satisfatórios e justificam o uso dela e me fizeram ter a sensação de que valeu a pena escrevê-la.
O JasperServer provê diversos web services SOAP que facilitam a integração, mas até o momento eu escrevi uma lib com um client apenas para o que é mais importante para mim neste momento: Falar qual relatório quero gerar, qual formato e pronto.
É isso, espero que essas classes ajudem outras pessoas também, porque na época que comecei a estudar o JasperServer eu não encontrei nenhuma classe PHP que funcionasse direito com o JasperServer e por isso acabei escrevendo a minha.
Se você quiser dar uma olhada o código está disponível no Github, ele não está um primor ainda mas está funcionando e como alguém importante disse: shipping is a feature.
Depois me diga o que achou.
Muito bom Adler, isso funciona sem o maldito PHP/Java Bridge.
Sim. Nada de Java Bridge e ainda temos um servidor próprio para gerenciar os relatórios, assim diminui o overhead causado pela geração via shell/exec ou usando o recurso Java localmente para gerar.
Abração.
Gostei. Funcionou belezinha aqui e já substitui o antigo bridge aqui.
Depois vou comitar umas implementações que coloquei nele =)
Abs e valeu!
Opa. Que beleza, fiquei feliz em saber que está sendo útil.
Fique a vontade pra comitar.
Abração
Muito bom mesmo! Aquele PHPBridge, não gostei. O PHPJaspeXML ainda falta muita coisa. Esse aqui simplesmente resolve todos os problemas!
Valeu por compartilhar!