Integrando Flex + Zend Framework (Usando o Quickstart da Zend) – PARTE 2

Compartilhe este artigo!

Sobre o autor

Entre em contato...

Redação ForumWeb

Redação ForumWeb Equipe de desenvolvimento do ForumWeb.com.br, responsável pelas dicas e downloads do site.

Site do autor: http://www.forumweb.com.br

Indique este artigo

Para

Seu email

Mensagem

Fechar
Personalize sua mensagem

Código

Arquivos relacionados

  • Por enquanto, nenhum arquivo para download.

Integrando Flex + Zend Framework (Usando o Quickstart da Zend) – PARTE 2

Segunda-Feira, 25 de Janeiro de 2010 às 15:06

Antes de dar continuidade e ir diretamente ao código, precisamos criar um novo projeto PHP no Eclipse, chamado ZendFrameworkQuickstart e apontar a pasta aonde está nosso Quickstart que baixamos anteriormente, no meu caso é “c:\wamp\apps\ZendFrameworkQuickstart”.


Criado o projeto, temos que configurar finalmente nosso componente Zend AMF. Para isso criamos um novo controller chamado “GatewayController” e logo em seguida seu método chamado “amfAction” veja abaixo:

GatewayController.php

<?php

class GatewayController extends Zend_Controller_Action {

	public function amfAction(){

	}

}


Como podemos ver, o GatewayController é um controller comum como os outros, ele extende de Zend_Controller_Action e ele será o nosso Endpoint para comunicar com o Flex. Claro, ainda não acontecerá nada porque temos que instanciar nosso componente Zend AMF e faremos isso dentro da action “amf” que acabamos de criar. Para instanciar devemos primeiramente importar a classe Zend_Amf_Server e após instanciá-la. Aproveitando criei o método init() padrão do Zend Framework para importar a classe e também tirar a renderização do layout.

<?php
class GatewayController extends Zend_Controller_Action {

	public function init(){
		//remove a renderização do layout da página
		$this->getHelper('viewRenderer')->setNoRender();
		//carrega a classe
		Zend_Loader::loadClass('Zend_Amf_Server');
	}

	public function amfAction(){
		//criamos a instancia do componente Zend AMF
		$server = new Zend_Amf_Server();
	}

}


Agora deveremos indicar a pasta aonde ficará todas as nossas classes PHP que farão comunicação com o Flex, mas antes disso vamos criar esta pasta, eu sugiro criar dentro de application para padronizar a estrutura. Esta pasta poderá chamar-se “services”.

Criada a pasta voltamos ao GatewayController e usamos o método “addDirectory” do nosso componente Zend AMF e em seguida passamos o caminho completo da nossa pasta “services”. Veja:

GatewayController.php

<?php
class GatewayController extends Zend_Controller_Action {

	public function init(){
		//remove a renderização do layout da página
		$this->getHelper('viewRenderer')->setNoRender();
		//carrega a classe
		Zend_Loader::loadClass('Zend_Amf_Server');
	}

	public function amfAction(){
		//criamos a instancia do componente Zend AMF
		$server = new Zend_Amf_Server();

		$server->addDirectory(APPLICATION_PATH . '/services/');
	}

}


Percebem-se que coloquei a constante APPLICATION_PATH para indicar o caminho completo até a pasta “application”, isso já está configurado no nosso index.php (Arquivo front-controller do Quickstart). Então o método “addDirectory” mapeia toda a pasta “services” indicando que ali estão todas as classes que terão acesso ao Flex e vice versa.

Precisamos agora fazer o Zend AMF conectar com o Flex através do método “handle”, para isso devemos imprimi-lo na tela para que aja a manipulação dos dados AMF.

GatewayController.php

<?php
class GatewayController extends Zend_Controller_Action {

	public function init(){
		//remove a renderização do layout da página
		$this->getHelper('viewRenderer')->setNoRender();
		//carrega a classe
		Zend_Loader::loadClass('Zend_Amf_Server');
	}

	public function amfAction(){
		//criamos a instancia do componente Zend AMF
		$server = new Zend_Amf_Server();

		$server->addDirectory(APPLICATION_PATH . '/services/');

		echo($server->handle());
	}

}


Pronto, agora você pode testar em seu navegador, a url “http://localhost/guestbook/gateway/amf” e deverá obter uma solicitação de download de um arquivo “amf” do tipo AMF. Se editá-lo verá que está escrito Zend Amf Endpoint. Isso significa que está funcionando até então nossa comunicação entre Zend e Flex.

Vamos criar a nossa classe PHP que desejamos comunicar com o Flex.

Crie um novo arquivo PHP dentro da pasta “services” chamado de “HelloFlexService” e respectivamente o mesmo nome para a classe. Em seguida criamos um método chamado “helloFlex” e colocamos um simples return “Olá Flex, estou usando o Zend AMF!”.

HelloPhpService.php

<?php
class HelloFlexService {

	public function helloFlex(){
		return 'Olá Flex, estou usando o Zend AMF!';
	}

}


Feito! No próximo post estarei mostrando para vocês como chamar esta classe no Flex e exibir o seu conteúdo.

Fonte: Jose Carlos Fiel

Qual a sua opinião?

Comente e interaja!



Ainda sem comentários, comente!