Nota do colunista:
Olá, pessoal! É com bastante entusiasmo que comunico a minha volta ao iMasters! Desde 2003 tenho escrito artigos dos mais variados assuntos, sempre buscando tecnologias emergentes e que possam, de certa forma, ajudar a comunidade e contribuir com o aprendizado de todos. Minha linha de artigos será baseada sempre no Flex, e ocasionalmente outras tecnologias como .NET, extjs e php. Não deixem de sugerir novos temas através do meu email daniel.schmitz at hotmail.com. Aproveitem!!
Neste artigo iremos elaborar rapidamente uma forma de conexão entre o Flex e o PHP, através do consagrado Zend Framework, que é um conjunto de bibliotecas (muito coesas) que podem ser utilizadas para as mais diversas finalidades, desde a criação de sistemas MVC, à utilização de APIs para o Twitter.
Para que o Flex e o PHP possam "trocar dados", é preciso inicialmente preparar um ambiente baseado na instalação dos seguintes requisitos:
Estes três requisitos podem ser facilmente instalados, possuindo diversos tutoriais espalhados na Net. Não é escopo desse artigo exibir a instalação destes. Caso tenha dúvidas ou problemas, entre em contato comigo, quem sabe o tema não mereça um artigo próprio.
Com o servidor web funcionando, crie uma pasta em c:\wamp\www\FlexZendTeste e adicione um Projeto Flex com o mesmo nome nesta pasta. Como resultado temos a seguinte imagem:
Após criar o projeto, clique no botão RUN (Setinha verde) e veja o seguinte resultado:
Ou seja, o Flex Builder criou toda a compilação necessária (arquivos html, swf, etc) para rodar a aplicação. A primeira mudança no nosso projeto será fazer o Flex abrir um endereço válido, ao invés do "c:\.......".
Clique com o botão direito do mouse no projeto e escolha o item "Properties". Navegue até o item "Flex Build Path" e no campo "Output folder URL" coloque o seguinte texto:
http://localhost/FlexZendTeste/bin-debug/
Clique em OK e rode novamente o projeto. Agora o browser é aberto com o endereço certo:
Agora vamos providenciar a instalação do Zend Framework. Baixe a última versão estável do site (Zend Minimal) e, após descompactar o arquivo ZIP, copie a pasta "library/Zend" para:
C:\wamp\www\FlexZendTeste\bin-debug
Após copiar o Zend Framework, criamos o arquivo "server.php" na pasta bin-debug. Este arquivo contém o seguinte código:
Neste arquivo, criamos o Zend Autoloader (linhas 4 e 5) para que todas as bibliotecas do Zend sejam carregadas automaticamente.
Na linha 8 criamos o Zend_Amf_Server, que é responsável por prover a comunicação entre o Flex e o Zend, utilizando o protocolo AMF.
Na linha 11 adicionamos o diretório corrente (do arquivo Server.php) para ser o diretório que contém as classes em PHP que o Flex irá chamar.
Na linha 14 é renderizada a resposta ao Flex, utilizando o protocolo AMF.
Após criar este arquivo, devemos configurar outro arquivo no Flex, que é responsável em "ligar" o Flex ao PHP. Esse arquivo é um XML de configuração chamado services-config.xml que deve ser salvo na pasta "src" do projeto Flex.
O arquivo está descrito a seguir:
As partes mais importantes desse arquivo são a linha 6 e a 18. Na 6, criamos um destino, no qual colocamos o nome "zend". Pode ser qualquer nome, ok? Na linha 18 configuramos o atributo uri, que irá apontar para o arquivo server.php
Após criar o arquivo XML, abra novamente as propriedades do projeto e navegue até o item "Flex Compiler". Adicione a seguinte configuração:
Agora que a estrutura inicial está pronta, podemos iniciar os testes. Crie um arquivo chamado ZendTest.php na pasta bin-debug. Coloque o seguinte texto:
Pode-se ver que é um arquivo simples, contendo uma classe, obrigatoriamente com o mesmo nome do arquivo, e um método "SayHello". Após criar esta classe, iremos chamá-la pelo Flex, configurando o arquivo FlexZendText.mxml da seguinte forma:
Na linha 17, criamos o objeto RemoteObject que é responsável em conectar no PHP através do protocolo AMF. O atributo destination (linha 19) aponta para o destination do XML de configuração (linha 6 do XML da figura services-config.xml).
O atributo source (linha 20) aponta para a classe PHP que será chamada, nesse caso, ZendTest. O evento result (linha 21) irá disparar o método OnResult (linha 9), que por sua vez irá exibir uma mensagem com o parâmetro event.result.toString() (linha 11). Este evento é disparado quando o PHP retornar com os dados para o Flex.
O Button na linha 24 possui, em seu evento click, uma chamada para o método SayHello do arquivo ZendTest.php.
Após estas configurações, basta executar o projeto e clicar no botão. O resulto é este:
Caso tenha algum problema, não deixe de rever o artigo e realizar os passos necessários. Segue um checklist de problemas que podem ocorrer. Verifique:
Com isso finalizamos este artigo. Estamos à disposição para a solicitação de mais artigos nesta área.
Patrícia Souza
Olá Daniel, que bom que você voltou a escrever. Muito interessante você integrar o zend framework com o flex, vai juntar duas das minhas ferramentas favoritas! Parabens!
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.