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

This entry was posted sábado, 16 maio, 2009 at 0:46

Olá pessoal, estou de volta, não tive muito tempo esses últimos dias, mas prometo nos próximos dias honrar o meu sobrenome e ser fiel aos posts rsrs. Bom brincadeiras a parte, mas vamos o que interessa, que é continuar esta série de integrar o Flex com o Zend Framework usando um projeto já construído, neste caso estou usando o Quickstart da Zend.

Recomendo que você leia a parte 1 antes de continuar lendo este post.

Bom 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”.
projeto_quickstart

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.

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();
	}

}

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. Desta vez eu não demoro rsrs, aguardem…

1 Comentário to Integrando Flex + Zend Framework (Usando o Quickstart da Zend) – PARTE 2

  1. Integrando Flex + Zend Framework (Usando o Quickstart da Zend) - PARTE 3 @ José Carlos Fiel says:

    maio 18th, 2009 at 1:17

    [...] HomeSobre « Integrando Flex + Zend Framework (Usando o Quickstart da Zend) – PARTE 2 [...]

Deixe um comentário