Em vários projetos que participo, uma das coisas mais solicitadas são relatórios gerenciais. Em sua grande maioria, são solicitados em 3 formatos: HTML, PDF e Excel.
Vamos analisar como fazer os dois últimos: PDF e Excel. Neste post, estudaremos PDF, e em um post futuro, sobre Excel.
Hoje coloquei mais um exemplo de uso de Lumine.
Nele, são associados vários objetos de Telefone a um objeto Pessoa, depois é chamado o método save de pessoa e todos os telefones são salvos, fazendo referencia a pessoa.
Este exemplo também utiliza JQuery para ficar um pouco mais iterativo, e poder adicionar quantos telefones desejar de uma única vez.
@braços e fiquem com Deus!
Hoje vamos falar um pouco sobre os formatadores.
Seu comportamento mudou nas versões mais recentes de Lumine, isto porque, nas versões anteriores os membros da classe não eram explicitamente declarados, assim quando você chamava um atributo que não existia, o método mágico __get era disparado, e internamente, os formatadores eram executados para então retornar o valor formatado.
Como havia dito antes, vou mostar um exemplo de uso com relacionamentos.
Neste exemplo, estou assumindo que:
O objetivo é mostrar como os relacionamentos podem ser criados com Lumine, de forma rápida e orientada a objetos.
Esse final de semana foi de grandes melhorias no Lumine, principamente para desenvolvimento com Ajax e AMF!
Agora é possível enviar os elementos serializados em JSON utilizando os métodos toJSON e allToJSON! Assim, você não precisa mais fazer uma iteração para recuperar os elementos no formato necessário para envio via Ajax!
Para quem gosta de utilizar Flex com AMF, outra atualização muito interessante.
No momento em que você realizar a engenharia reversa, você tem a opção de gerar as classes DTO (ou VO) para sua entidades de negócio. Além disso, foram criados dois métodos: toObject e allToObject.
A grande vantagem destes dois métodos, quando utilizando DTO's, é que você pode setar na configuração de Lumine para que ele faça o cast automaticamente para o tipo de dados (classe) correspondente. E também nesta engenharia o DTO gerado já vem com o atributo $_explicitType. Assim, ficou ainda mais fácil integrar com RemoteObject.
Hoje, vou mostrar um exemplo bem básico de como trabalhar com Lumine, Zend_Amf e Flex.