HUFERSIL.WEBDEVELOPER

Integração Flash com Lumine, usando XML

Olá Pessoas!

Hoje vou mostrar um exemplo simples de como utilizar o Lumine com o Flash, transformando os registros em XML para ler do lado Flash.

Vamos utilizar componentes para facilitar a visualização dos itens na tela.

Construiremos uma lista simples de resultados obtidos em uma consulta. Para isso, vamos utilizar o componente DataGrid.

Teremos também um campo de texto para pesquisa (componente TextInput) e dois botões, um para pesquisar e outro para remover itens do grid (componente Button).

Para ficar como um campo de status, criaremos um TextField dinâmico abaixo dos outros componentes.

No final, teremos uma tela parecida com a tela abaixo:

Grid 1

 

Preparando os arquivos PHP

Para começarmos, temos que preparar nossos arquivos em PHP. Para facilitar a criação das classes, crie o banco de dados e importe o arquivo SQL.

Depois do banco criado, vamos partir para a engenharia reversa do Lumine. Para facilitar, vamos usar a tela que já vem com Lumine.

Caso você ainda não tenha, baixe a versão mais atual de Lumine. Depois, descompacte em um local que possa ser acessado via browser para podermos acessar a tela da engenharia reversa (na página da engenharia reversa de Lumine indica como chegar nesta tela).

Você deverá visualizar uma tela semelhante a abaixo:

Engenharia Reversa

Precisaremos indicar somente os dados básicos de configuração:

  • Nome do banco de dados
  • Usuário do banco de dados
  • Senha do banco de dados
  • Host do banco de dados
  • Class Path (diretório raiz onde ficará sua aplicação)
  • Pacote das classes. Para este exemplo, vamos usar o padrão (entidades)
  • Em tipo de geração, deixe o padrão. Certifique-se que servidor web que você está usando (Apache, ISS) tenha direito de escrita na pasta informada.

Depois de entrar com as informações clique em Recuperar Tabelas. Será aberta uma tela semelhante a abaixo:

Tabelas Encontradas

Selecione a tabela "teste" e clique em Gerar Classes.

Depois desse processo, será mostrada uma tela onde indica o resultado da engenharia reversa. Se no final aparecer "Engenharia reversa terminada!", o processo foi concluido com sucesso.

 

Criando o arquivo que gera o XML

Este arquivo é bem simples.

Nele, vamos inicializar Lumine, alterar o TimeZone padrão para não termos problema com Strict Warnings e efetuar nossa pesquisa. Abaixo segue o conteúdo do arquivo:

<?php
// carrega a biblioteca de lumine
require_once 'lumine/Lumine.php';
// carrega a configruacao
require_once 'lumine-conf.php';
// muda o timezone para nao termos problemas com datas
date_default_timezone_set('America/Sao_Paulo');

// cria uma nova instancia de configuracao
$cfg = new Lumine_Configuration($lumineConfig);
// registra um autocarregador de classes
spl_autoload_register(array($cfg, 'import'));
// registra a funcao para fechar a conexao ao termino do script
register_shutdown_function(array($cfg->getConnection(),'close'));

// novo objeto lumine
$obj = new Teste();
// filtra pela chave usada
$obj->where('{nome} like ?', $_POST['nome']);
// ordena pelo nome
$obj->order('{nome} asc');
// efetua a busca
$obj->find();

// muda o header
header("Content-Type: text/xml");
// inicio do xml
echo '<?xml version="1.0" encoding="utf-8"?>';
// escreve o xml de resultado
echo $obj->allToXML( false );

Como pode-se ver, também estamos recebendo um parâmetro via POST para pesquisa.

Depois para gerar nosso XML, simplesmente chamamos o método allToXML, que converte todos os resultados em um XML.

Acessando este arquivo, com a devida requisição POST, o resultado será semelhante ao abaixo:

XML pelo browser

 

Pronto! Nosso arquivo PHP está pronto para ser acessado pelo Flash.

Para facilitar, separei em dois artigos.

Veja agora o artigo desta integração!

@braços e fique com Deus!

Deixar uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

*

Pode usar estas etiquetas HTML e atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">