<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>José Carlos Fiel &#187; Zend Framework</title>
	<atom:link href="http://blog.josecarlosfiel.com.br/tag/zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.josecarlosfiel.com.br</link>
	<description></description>
	<lastBuildDate>Sat, 21 May 2011 15:32:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Entendendo o Flash Remoting</title>
		<link>http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/</link>
		<comments>http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 21:27:56 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[amf]]></category>
		<category><![CDATA[flash remoting]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=413</guid>
		<description><![CDATA[Hoje não trago nenhuma linha de código a vocês, mas sim um assunto interessante para entender como funciona o Flash Remoting na teoria. O que é Flash Remoting? Quando você está usando XML para enviar dados para sua aplicação cliente, muitos dos dados que você está transferindo não é absolutamente necessário. Pense em todos os]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fentendendo-o-flash-remoting%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fentendendo-o-flash-remoting%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Hoje não trago nenhuma linha de código a vocês, mas sim um assunto interessante para entender como funciona o Flash Remoting na teoria.</p>
<p style="text-align: justify;">
<h3><strong>O que é Flash Remoting?</strong></h3>
<p>Quando você está usando XML para enviar dados para sua aplicação cliente, muitos dos dados que você está transferindo não é absolutamente necessário. Pense em todos os caracteres extras que estão em um documento XML. Pense em quantas vezes você tem que enviar os atributos e nós, bem como ambas as tags início e tags de fim. XML é um formato grande, mas há uma grande sobrecarga no processamento desde documento.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span style="line-height: 23px; font-size: 21px;"><strong>Action Message Format</strong></span></p>
<p>Action Message Format (AMF) funciona através de HTTP, como o XML, mas em vez de enviar diversas informações extras, o AMF envia as informações essenciais retirando estes caracteres desnecessários, ou seja é serializado dentro de um formato binário que usa bem menos banda e espaço do que um mesmo dado enviado com XML.</p>
<p>Isso torna útil quando você envia muitos dados. Em vez de enviar várias tags redundantes em XML, você está enviando pequenos registros AMF serializados.</p>
<p>Outro benefício do AMF é, que este é um tipo de dados nativo do Flash Player. Com isso o Flash Player não tem que fazer um &#8220;parse&#8221; dos resultados para obter as informações. Eles estão disponíveis no Flash Player como objetos nativos do ActionScript logo que é recebido através do servidor.</p>
<p>Flash Remoting usa AMF para expor objetos e web services em um servidor de aplicação, como se fossem objetos ActionScript locais. O único problema é que para usar AMF você tem que trabalhar com objetos no PHP. O gateway AMF ajuda a traduzir esses objetos PHP em objetos ActionScript no Flash Player. Com isso, você pode criar seus próprios objetos tipados no PHP e manter uma cópia destes objetos tipados no ActionScript.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span style="line-height: 23px; font-size: 21px;"><strong>Flash Remoting e o Zend Framework</strong></span></p>
<p>Você já deve saber que recentemente a Adobe fez uma parceria com a Zend para fornecer suporte para o Flash Remoting com AMF no Zend Framework. Existem outros projetos como este, incluindo o <a href="http://www.amfphp.org/" target="_blank"><span style="color: #4e4e4e;">AMFPHP</span></a> para outros frameworks PHP, mas Zend AMF tem constante suporte para Flash Remoting. O <a href="http://framework.zend.com/" target="_blank"><span style="color: #4e4e4e;">Zend Framework</span></a> é um robusto framework para PHP que pode ser usado para projetos muitos complexos. Para alguns desenvolvedores PHP qual apenas quer conectar PHP com Flex pode ser um caminhão de pedra para matar uma mosca. Você não precisa usar todo o Zend Framework, ou alterar a estrutura do seu projeto para usar o Zend AMF. Zend AMF baseia-se em um pequeno, mas poderoso, pacote que pode ser facilmente integrado a qualquer projeto PHP.</p>
<p style="text-align: justify;">
<p>&#8211;</p>
<p>Por hoje é isso!  O artigo original vocês podem acessar <a href="http://www.adobe.com/devnet/flex/articles/flashbuilder4_php_part2_02.html" target="_blank"><span style="color: #4e4e4e;">aqui</span></a>.  Espero que tenham gostado e sinta-se a vontade de deixar sugestões ou críticas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minizend &#8211; Aplicação Demo</title>
		<link>http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/</link>
		<comments>http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 15:12:40 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[minizend]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=374</guid>
		<description><![CDATA[No video abaixo apresento a aplicação de Distribuição de Fornecedores que irei desenvolver durante o mini curso online de Flex e Zend Framework (#minizend). O curso ocorrerá neste sábado, dia 05/06. Para quem não se matriculou ainda, não se preocupe, pois ainda há tempo! Acesse www.riacycle.com/zend e garanta sua vaga.]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fminizend-aplicacao-demo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fminizend-aplicacao-demo%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>No video abaixo apresento a aplicação de Distribuição de Fornecedores que irei desenvolver durante o mini curso online de Flex e Zend Framework (#minizend).</p>
<p>O curso ocorrerá neste sábado, dia <strong>05/06</strong>. Para quem não se matriculou ainda, não se preocupe, pois ainda há tempo! Acesse www.riacycle.com/zend e garanta sua vaga.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="270" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://blip.tv/play/AYHaj24A" /><param name="src" value="http://blip.tv/play/AYHaj24A" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="320" height="270" src="http://blip.tv/play/AYHaj24A" allowfullscreen="true" data="http://blip.tv/play/AYHaj24A"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Fiel Cookbook] Manipulando Datas entre Flex e PHP</title>
		<link>http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/</link>
		<comments>http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 19:38:08 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Fiel Cookbook]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=362</guid>
		<description><![CDATA[Problema Temos um DateField no Flex e queremos enviar a data selecionada para o PHP como um objeto Date e não somente uma simples string no fomato DD/MM/YYYY. Enviando o objeto Date, teremos o benefício de ter todas as informações de Timezone, GMT e etc para serem manipuladas futuramente via backend. Solução Para resolvermos nosso]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-manipulando-datas-entre-flex-e-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-manipulando-datas-entre-flex-e-php%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<h2><strong>Problema</strong></h2>
<p style="text-align: justify;">Temos um DateField no Flex e queremos enviar a data selecionada para o PHP como um objeto Date e não somente uma simples string no fomato DD/MM/YYYY. Enviando o objeto Date, teremos o benefício de ter todas as informações de Timezone, GMT e etc para serem manipuladas futuramente via backend.</p>
<p style="text-align: justify;">
<h2>Solução</h2>
<p style="text-align: justify;">Para resolvermos nosso problema, devemos utilizar o Zend Amf para serialização/deserialização de objetos entre Flex e PHP. No Flex simplesmente usaremos a propriedade <strong>selectedDate </strong>do DateField para selecionarmos o objeto Date e após enviar ao PHP via RemoteObject. O Zend Amf terá o papel de converter este objeto para Zend Date e vice versa.</p>
<p style="text-align: justify;">
<h2>Explicação Detalhada</h2>
<p style="text-align: justify;"><em>Obs.:  O ViewSource está habilitado no exemplo abaixo para quem quiser  acompanhar melhor esta explicação.<br />
</em></p>
<p>1º &#8211; Capturamos o objeto Date pela propriedade <strong>selectedDate </strong>do DateField e enviamos para o PHP.</p>
<p><strong>FlexPHPDate.mxml</strong></p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> viewSourceURL=<span style="color: #ff0000;">&quot;srcview/index.html&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;mx:Script&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;&lt;![CDATA[</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.controls.Alert;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.rpc.events.FaultEvent;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.rpc.events.ResultEvent;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public function getTimezone():void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;remote.getTimezone(dt.selectedDate);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public function getTimestamp():void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;remote.getTimestamp(dt.selectedDate);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;protected function remote_resultHandler(event:ResultEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Alert.show(event.result.toString());</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;]]&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp;&lt;/mx:Script&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:DateField</span> id=<span style="color: #ff0000;">&quot;dt&quot;</span> formatString=<span style="color: #ff0000;">&quot;DD/MM/YYYY&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Get Timezone&quot;</span> click=<span style="color: #ff0000;">&quot;getTimezone()&quot;</span> enabled=<span style="color: #ff0000;">&quot;{ dt.selectedDate != null }&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Get UNIX timestamp&quot;</span> click=<span style="color: #ff0000;">&quot;getTimestamp()&quot;</span> enabled=<span style="color: #ff0000;">&quot;{ dt.selectedDate != null }&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:RemoteObject</span> id=<span style="color: #ff0000;">&quot;remote&quot;</span> destination=<span style="color: #ff0000;">&quot;zend&quot;</span> endpoint=<span style="color: #ff0000;">&quot;../gateway.php&quot;</span> </span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; source=<span style="color: #ff0000;">&quot;DateService&quot;</span></span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result=<span style="color: #ff0000;">&quot;remote_resultHandler(event)&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<p>2º &#8211; Recebemos o objeto Date no PHP já convertido para Zend_Date. Isso é feito automaticamente pelo Zend_Amf.</p>
<p><strong>DateService.php (está localizando dentro da pasta /services/)</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> DateService<br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getTimezone<span style="color: #009900;">&#40;</span>Zend_Date <span style="color: #000088;">$date</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTimezone</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getTimestamp<span style="color: #009900;">&#40;</span>Zend_Date <span style="color: #000088;">$date</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTimestamp</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p><iframe style="width: 100%; height: 300px;" border="0" src="http://www.josecarlosfiel.com.br/projetos/flex/FlexPHPDate/bin-release/FlexPHPDate.html"></iframe></p>
<p style="text-align: center;"><em>Exemplo  da Solução: Ao selecionarmos a data e selecionando Get Timezone, mandaremos para o PHP o objeto Date e após o PHP enviará para nós um timestamp desta data atravéz do Zend_Date. Acontece o mesmo para Get UNIX Timestamp.</em></p>
<p style="text-align: left;"><em><strong>Baixe aqui o projeto Flex incluindo o PHP: </strong></em><a href="http://www.josecarlosfiel.com.br/projetos/flex/FlexPHPDate.zip">FlexPHPDate.zip</a><em><br />
</em></p>
<p style="text-align: center;">
<h2>Observações Finais</h2>
<p style="text-align: justify;">Esta prática é interessante para manipularmos o mesmo objeto Date de uma linguagem para outra, com várias informações de Timezone, GMT e etc, como citados acima.</p>
<p>Abraços a todos e até o próximo Fiel Cookbook.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Palestra Flex + PHP usando Zend Amf (Flex Mania)</title>
		<link>http://blog.josecarlosfiel.com.br/palestra-flex-php-usando-zend-amf-flex-mania/</link>
		<comments>http://blog.josecarlosfiel.com.br/palestra-flex-php-usando-zend-amf-flex-mania/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 03:34:57 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend Amf]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=223</guid>
		<description><![CDATA[Olá pessoal! Já está disponível a gravação da minha palestra sobre Flex + PHP usando Zend Amf no grande evento da Flex Mania. Peço desculpas pelo nervosismo, mas esta foi minha primeira palestra e tentei focar no objetivo que era integrar o Flex e PHP com o Zend Amf. Os slides e o app de]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fpalestra-flex-php-usando-zend-amf-flex-mania%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fpalestra-flex-php-usando-zend-amf-flex-mania%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: center;"><a href="http://tinyurl.com/lnphvc" target="_blank"><img class="size-full wp-image-224 aligncenter" title="Clique para assistir a gravação da Palestra Flex + PHP usando Zend Amf no Flex Mania" src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/07/flex_php_zend_amf.jpg" alt="Palestra Flex + PHP usando Zend Amf no Flex Mania" width="500" height="378" /></a></p>
<p>Olá pessoal! Já está disponível a gravação da minha palestra sobre Flex + PHP usando Zend Amf no grande evento da Flex Mania. Peço desculpas pelo nervosismo, mas esta foi minha primeira palestra e tentei focar no objetivo que era integrar o Flex e PHP com o Zend Amf.</p>
<p>Os slides e o app de exemplo segue abaixo para download.</p>
<p>Agradeço a todos que me apoiaram e ao Igor Costa que me deu esta oportunidade para participar de um grande evento como foi o Flex Mania.</p>
<p>Acesse minha palestra aqui: <a href="http://tinyurl.com/lnphvc" target="_blank">http://tinyurl.com/lnphvc</a><br />
Slides: <a style="text-decoration: none;" href="http://tinyurl.com/m52dh6" target="_blank">http://tinyurl.com/m52dh6<br />
</a>App: <a href="http://tinyurl.com/m5xbrx" target="_blank">http://tinyurl.com/m5xbrx</a></p>
<p>Também não percam as outras palestras do Flex Mania&#8230; é imperdível!!! Acesse e Assista: <a href="http://www.flexmania.com.br" target="_blank">www.flexmania.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/palestra-flex-php-usando-zend-amf-flex-mania/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maior atualização do Zend Amf (1.8.4 release)</title>
		<link>http://blog.josecarlosfiel.com.br/maior-atualizacao-do-zend-amf-184-release/</link>
		<comments>http://blog.josecarlosfiel.com.br/maior-atualizacao-do-zend-amf-184-release/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 00:12:26 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend Amf]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=214</guid>
		<description><![CDATA[É bom estar de olho nas atualizações do Zend Framework, que sempre corrige bugs ou adiciona uma nova funcionalidade ou plugin para uso. Desde então é a maior atualização do componente Zend Amf desde o seu lançamento. Atualmente o Zend Framework na versão 1.8.4 recebeu muitas alterações no componente Zend Amf que vale a pena]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fmaior-atualizacao-do-zend-amf-184-release%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fmaior-atualizacao-do-zend-amf-184-release%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">É bom estar de olho nas atualizações do Zend Framework, que sempre corrige bugs ou adiciona uma nova funcionalidade ou plugin para uso. Desde então é a maior atualização do componente Zend Amf desde o seu lançamento.</p>
<p style="text-align: justify;">Atualmente o Zend Framework na versão 1.8.4 recebeu muitas alterações no componente Zend Amf que vale a pena ficar atento e testar novas funcionalidades ou verificar as correções efetuadas. Veja abaixo as alterações:</p>
<p style="text-align: justify;">Maiores Alterações<br />
<a href="http://framework.zend.com/issues/browse/ZF-6641" target="_blank">ZF-6641</a> Shared references are duplicated<br />
<a href="http://framework.zend.com/issues/browse/ZF-6205" target="_blank">ZF-6205</a> Serializer does not support cyclic references<br />
<a href="http://framework.zend.com/issues/browse/ZF-6393" target="_blank">ZF-6393</a> Wrong Amf0_Amf3 reference counting<br />
<a href="http://framework.zend.com/issues/browse/ZF-5382" target="_blank">ZF-5382</a> Multiple calls seems to break the deserializer.<br />
<a href="http://framework.zend.com/issues/browse/ZF-6625" target="_blank">ZF-6625</a> Zend Amf can load any instantiated PHP class. Security</p>
<p style="text-align: justify;">Menores alterações, mas significantes<a href="http://framework.zend.com/issues/browse/ZF-6975" target="_blank"><br />
ZF-6975</a> Adobe Flash Builder 4 wizard now supports data types for introspection.<br />
<a href="http://framework.zend.com/issues/browse/ZF-6992" target="_blank">ZF-6992</a> Negative integers on 64 bit system is resolved.<br />
<a href="http://framework.zend.com/issues/browse/ZF-6775" target="_blank">ZF-6775</a> Unable to send Array’s from Blaze DS.</p>
<p style="text-align: justify;">Ainda foi detectado um bug nesta nova versão 1.8.4. Quando usado o método addDirectory() a classe a ser chamada pára de carregar. Isso já foi resolvido, mas será lançado amanhã dia 2 de julho a correção. Veja abaixo a solução para este problema:</p>
<p style="text-align: justify;">Substitua o Zend/Loader/PluginLoader.php pela nova versão localizada em<br />
<a onclick="javascript:pageTracker._trackPageview('/outbound/article/framework.zend.com');" href="http://framework.zend.com/svn/framework/standard/branches/release-1.8/library/Zend/Loader/PluginLoader.php" target="_blank">http://framework.zend.com/svn/framework/standard/branches/release-1.8/library/Zend/Loader/PluginLoader.php</a></p>
<p style="text-align: justify;">======== Atualização 7 de Julho ========<br />
Liberada a versão que resolve o problema do método addDirectory:<br />
<a href="http://devzone.zend.com/article/4808-Zend-Framework-1.8.4pl1-Now-Available" target="_blank">http://devzone.zend.com/article/4808-Zend-Framework-1.8.4pl1-Now-Available</a></p>
<p style="text-align: justify;"><a onclick="javascript:pageTracker._trackPageview('/outbound/article/framework.zend.com');" href="http://framework.zend.com/svn/framework/standard/branches/release-1.8/library/Zend/Loader/PluginLoader.php"></a><em>Fontes:<br />
</em><a href="http://wadearnold.com/blog/flash/amfphp/major-zend-amf-updates-for-184-release" target="_blank"><em>http://wadearnold.com/blog/flash/amfphp/major-zend-amf-updates-for-184-release<br />
</em></a><a href="http://wadearnold.com/blog/flash/zf-184-breaks-adddirectory" target="_blank"><em>http://wadearnold.com/blog/flash/zf-184-breaks-adddirectory</em></a><em> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/maior-atualizacao-do-zend-amf-184-release/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Integrando Flex + Zend Framework (Usando o Quickstart da Zend) &#8211; PARTE 3</title>
		<link>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-3/</link>
		<comments>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-3/#comments</comments>
		<pubDate>Mon, 18 May 2009 03:17:42 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=134</guid>
		<description><![CDATA[Olá pessoal, na Parte 2 tinha mostrado como criar o componente Zend AMF para comunicarmos com o Flex. Então vamos ao Flex e dar a continuidade a essa integração. No seu Eclipse, selecione a perspectiva Flex Development e logo clique com o direito do mouse sobre o projeto PHP ZendFrameworkQuickstart. No menu selecione Flex Project]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fintegrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fintegrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-3%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Olá pessoal, na <a href="http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-2/">Parte 2</a> tinha mostrado como criar o componente Zend AMF para comunicarmos com o Flex. Então vamos ao Flex e dar a continuidade a essa integração.</p>
<p>No seu Eclipse, selecione a perspectiva Flex Development e logo clique com o direito do mouse sobre o projeto PHP ZendFrameworkQuickstart. No menu selecione Flex Project Nature > Add Flex Project Nature, conforme a imagem abaixo.<br />
<a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/flex_project_nature.jpg" target="_blank"><img src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/flex_project_nature.jpg" alt="Clique para ampliar" title="Clique para ampliar" width="300" height="212" class="aligncenter size-full wp-image-135" /></a></p>
<p>No nosso projeto não será necessário selecionar a tecnologia, pois não iremos rodar o projeto diretamente do Eclipse e sim diretamente pelo browser, como pode ver a imagem abaixo. </p>
<p><a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/adding_flex_nature_to_project.jpg" target="_blank"><img src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/adding_flex_nature_to_project.jpg" alt="Clique para ampliar" title="Clique para ampliar" width="300" height="212" class="aligncenter size-full wp-image-138" /></a></p>
<p>Prosseguindo coloque o seu Output Folder a pasta public, aonde acessaremos diretamente nossa aplicação Flex.</p>
<p><a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/configure_output.jpg" target="_blank"><img src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/configure_output.jpg" alt="Clique para ampliar" title="Clique para ampliar" width="300" height="212" class="aligncenter size-full wp-image-140" /></a></p>
<p>Clicando em Finish será criado a pasta &#8220;src&#8221; dentro do projeto e abrirá o arquivo ZendFrameworkQuickstart.mxml. Caso ocorra algum erro no Eclipse de &#8220;Cannot create HMTL wrapper&#8230;&#8221; que não criou a pasta &#8220;html-template&#8221;, clicamos com o botão direito em cima da linha do erro e selecionamos a opção &#8220;Recreate HTML Templates&#8221;.<br />
<a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/error_html_templates.jpg" target="_blank"><img src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/error_html_templates-300x212.jpg" alt="Clique para ampliar!" title="Clique para ampliar!" width="300" height="212" class="aligncenter size-medium wp-image-146" /></a></p>
<p>Na Application ZendFrameworkQuickstart criamos um simples botão e em seguida criaremos um RemoteObject no próprio MXML.</p>
<p><strong>ZendFrameworkQuickstart.mxml</strong></p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:RemoteObject</span> id=<span style="color: #ff0000;">&quot;ro&quot;</span> destination=<span style="color: #ff0000;">&quot;zend&quot;</span></span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp;endpoint=<span style="color: #ff0000;">&quot;http://localhost/guestbook/gateway/amf&quot;</span></span><br />
<span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; source=<span style="color: #ff0000;">&quot;HelloFlexService&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Chamar PHP&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<p>Veja o código acima, criei o RemoteObject passando o Endpoint com a url &#8220;http://localhost/guestbook/gateway/amf&#8221; que nada mais é a nossa action que configuramos o componente Zend AMF para se comunicar com o Flex, também foi adicionado a propriedade &#8220;source&#8221; com o nome da classe PHP que desejamos chamar, neste caso é a &#8220;HelloFlexService&#8221;.</p>
<p>Feito isso, vamos colocar uma ação de click no Botão e iremos chamar o método &#8220;helloFlex&#8221; que está na classe &#8220;HelloFlexService&#8221;.</p>
<p><strong>ZendFrameworkQuickstart.mxml</strong></p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;mx:Script&gt;</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;![CDATA[</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; import mx.controls.Alert;</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; </span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public function chamarPhp():void{</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //chama o método helloFlex</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro.helloFlex();</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &nbsp; &nbsp; ]]&gt;</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &lt;/mx:Script&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:RemoteObject</span> id=<span style="color: #ff0000;">&quot;ro&quot;</span> destination=<span style="color: #ff0000;">&quot;zend&quot;</span></span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp;endpoint=<span style="color: #ff0000;">&quot;http://localhost/guestbook/gateway/amf&quot;</span></span><br />
<span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; source=<span style="color: #ff0000;">&quot;HelloFlexService&quot;</span> </span><br />
<span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; result=<span style="color: #ff0000;">&quot;Alert.show(event.result.toString())&quot;</span> <span style="color: #7400FF;">/&gt;</span></span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Chamar PHP&quot;</span> click=<span style="color: #ff0000;">&quot;chamarPhp()&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> </span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp;horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<p>Como pode ver criei um método chamarPhp que será chamado quando eu clicar no botão e dentro do método chamamos o RemoteObject de id &#8220;ro&#8221; e em seguida invocamos o método que está lá na classe HelloFlexService, chamado helloFlex.<br />
Já aproveitei e adicionei um evento de result no RemoteObject, colocando um Alert para exibir o resultado vindo do método invocado. Salve a Application ZendFrameworkQuickstart e antes de acessar a url &#8220;http://localhost/guestbook/ZendFrameworkQuickstart.html&#8221; para rodar nossa aplicação Flex, vamos ao GatewayController e adicionaremos no método init() a linha de código &#8220;$this->_helper->layout()->disableLayout();&#8221;, veja abaixo como ficará o seu GatewayController:</p>
<p><strong>GatewayController.php</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> GatewayController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//linha adicionada para evitar que o layout seja exibido</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_helper<span style="color: #339933;">-&gt;</span><span style="color: #004000;">layout</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">disableLayout</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//devemos adicionar isso para evitar a renderização da view</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getHelper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'viewRenderer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setNoRender</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//carrega a classe</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend_Amf_Server'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> amfAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Amf_Server<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addDirectory</span><span style="color: #009900;">&#40;</span>APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/services/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">handle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Abrindo parenteses e explicando essa nova linha adicionada, ela evita que o layout HTML do nosso projeto Zend seja enviado para o arquivo AMF, atrapalhando nossa requisição entre Flex e PHP, pois ocorrerá um erro se tentar rodar sem desabilitar o layout do projeto. Poderá até fazer um teste rodando o nosso Endpoint &#8220;http://localhost/guestbook/gateway/amf&#8221; pelo browser e ver que o arquivo AMF terá dentro o layout HTML mais a string &#8220;Zend Amf Endpoint&#8221; e para que funcione corretamente a requisição AMF deve conter apenas a string &#8220;Zend Amf Endpoint&#8221;, fechando parenteses.<br />
Agora sim rode a aplicação Flex pela URL &#8220;http://localhost/guestbook/ZendFrameworkQuickstart.html&#8221; e clique no botão Chamar PHP e verá como resultado o Alert exibindo o result do método helloFlex, que será a seguinte frase &#8220;Olá Flex, estou usando o Zend AMF!&#8221;. </p>
<p>Bom pessoal, o exemplo foi simples, mas pretendo fazer a parte 4 que mostrará como fazer a camada view do Quickstart em Flex. Abraços e até breve.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Integrando Flex + Zend Framework (Usando o Quickstart da Zend) – PARTE 2</title>
		<link>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-2/</link>
		<comments>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-2/#comments</comments>
		<pubDate>Sat, 16 May 2009 02:46:37 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=114</guid>
		<description><![CDATA[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]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fintegrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fintegrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-2%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>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. </p>
<p>Recomendo que você leia a <a href="http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-1/">parte 1</a> antes de continuar lendo este post.</p>
<p>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 é &#8220;c:\wamp\apps\ZendFrameworkQuickstart&#8221;.<br />
<a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/projeto_quickstart.jpg" target="_blank"><img src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/05/projeto_quickstart.jpg" alt="projeto_quickstart" title="projeto_quickstart" width="388" height="455" class="aligncenter size-full wp-image-122" /></a></p>
<p>Criado o projeto, temos que configurar finalmente nosso componente Zend AMF. Para isso criamos um novo controller chamado &#8220;GatewayController&#8221; e logo em seguida seu método chamado &#8220;amfAction&#8221; veja abaixo:</p>
<p><strong>GatewayController.php</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> GatewayController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> amfAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>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 &#8220;amf&#8221; 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.</p>
<p><strong>GatewayController.php</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> GatewayController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//remove a renderização do layout da página</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getHelper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'viewRenderer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setNoRender</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//carrega a classe</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend_Amf_Server'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> amfAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//criamos a instancia do componente Zend AMF</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Amf_Server<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>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 &#8220;services&#8221;.<br />
Criada a pasta voltamos ao GatewayController e usamos o método &#8220;addDirectory&#8221; do nosso componente Zend AMF e em seguida passamos o caminho completo da nossa pasta &#8220;services&#8221;. Veja:</p>
<p><strong>GatewayController.php</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> GatewayController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//remove a renderização do layout da página</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getHelper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'viewRenderer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setNoRender</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//carrega a classe</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend_Amf_Server'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> amfAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//criamos a instancia do componente Zend AMF</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Amf_Server<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addDirectory</span><span style="color: #009900;">&#40;</span>APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/services/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Percebem-se que coloquei a constante APPLICATION_PATH para indicar o caminho completo até a pasta &#8220;application&#8221;, isso já está configurado no nosso index.php (Arquivo front-controller do Quickstart). Então o método &#8220;addDirectory&#8221; mapeia toda a pasta &#8220;services&#8221; indicando que ali estão todas as classes que terão acesso ao Flex e vice versa.</p>
<p>Precisamos agora fazer o Zend AMF conectar com o Flex através do método &#8220;handle&#8221;, para isso devemos imprimi-lo na tela para que aja a manipulação dos dados AMF.</p>
<p><strong>GatewayController.php</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> GatewayController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//remove a renderização do layout da página</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getHelper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'viewRenderer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setNoRender</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//carrega a classe</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend_Amf_Server'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> amfAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//criamos a instancia do componente Zend AMF</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Amf_Server<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addDirectory</span><span style="color: #009900;">&#40;</span>APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/services/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">handle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Pronto, agora você pode testar em seu navegador, a url &#8220;http://localhost/guestbook/gateway/amf&#8221; e deverá obter uma solicitação de download de um arquivo &#8220;amf&#8221; 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.</p>
<p>Vamos criar a nossa classe PHP que desejamos comunicar com o Flex.<br />
Crie um novo arquivo PHP dentro da pasta &#8220;services&#8221; chamado de &#8220;HelloFlexService&#8221; e respectivamente o mesmo nome para a classe. Em seguida criamos um método chamado &#8220;helloFlex&#8221; e colocamos um simples return &#8220;Olá Flex, estou usando o Zend AMF!&#8221;.</p>
<p><strong>HelloPhpService.php</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> HelloFlexService <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> helloFlex<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'Olá Flex, estou usando o Zend AMF!'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>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&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Integrando Flex + Zend Framework (Usando o Quickstart da Zend) – PARTE 1</title>
		<link>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-1/</link>
		<comments>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-1/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:26:31 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.fielweb.com.br/?p=97</guid>
		<description><![CDATA[Olá pessoal, estou aí para mais um post e agora postando um artigo interessante e que muitos ainda gostariam de saber como integrar uma aplicação Zend Framework com o Adobe Flex. Vou dividir este post em partes e de inicio vamos configurar o nosso Quickstart para que possam prosseguir na integração com nosso Flex. Lembrando]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fintegrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fintegrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-1%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">Olá pessoal, estou aí para mais um post e agora postando um artigo interessante e que muitos ainda gostariam de saber como integrar uma aplicação Zend Framework com o Adobe Flex. Vou dividir este post em partes e de inicio vamos configurar o nosso Quickstart para que possam prosseguir na integração com nosso Flex.<br />
Lembrando que não vou ensinar como configurar o ambiente Zend Framework, pois não é objetivo deste post.</p>
<p style="text-align: justify;">Primeiramente vou citar o que você precisará para que tudo funcione perfeitamente:</p>
<p style="text-align: justify;">1º &#8211; Baixe o Quickstart no site do Zend Framework:<br />
<a href="http://framework.zend.com/docs/quickstart" target="_blank">http://framework.zend.com/docs/quickstart</a></p>
<p style="text-align: justify;">2º &#8211; Descompacte o arquivo aonde desejar, de preferência em um local aonde você conheça o caminho do diretório completo.</p>
<p style="text-align: justify;">3º &#8211; Caso ainda não tenha a library do Zend Framework, você pode baixar aqui:<br />
<a href="http://framework.zend.com/download/latest" target="_blank">http://framework.zend.com/download/latest</a><br />
Pode baixar o pacote minimal, pois conterá somente o que precisamos.</p>
<p style="text-align: justify;">4º &#8211; Basta você pegar a pasta library do Zend Framework que acabou de baixar e sobrescreva a que está em seu ZendFrameworkQuickstart.</p>
<p style="text-align: justify;">5º &#8211; Então precisamos configurar a aplicação Quickstart para que funcione sem erros, para isso devemos configurar para que a pasta Public dentro de ZendFrameworkQuickstart seja o nosso diretório raiz do servidor. Para evitar que alteramos as configurações de nosso servidor, podemos criar um Alias, que agora mostrarei a maneira que eu fiz usando o Wamp, sendo que você pode fazer da maneira que preferir desde que funcione perfeitamente a aplicação Quickstart.</p>
<p style="text-align: justify;">Se você usa o Wamp existe um diretório chamado “alias” e dentro dele possui 2 arquivos .conf que se refere aos alias do phpmyadmin e sqlite. Crie uma cópia de um dos arquivos .conf e crie o seu alias, apontando a pasta public do ZendFrameworkQuickstart. Em meu caso ficou desta maneira:</p>
<p><em><strong>Arquivo guestbook.conf</strong></em></p>
<pre class="brush: text">

Alias /guestbook &quot;c:/wamp/apps/ZendFrameworkQuickstart/public/&quot;

# to give access to guestbook from outside
# replace the lines
#
#        Order Deny,Allow
#    Deny from all
#    Allow from 127.0.0.1
#
# by
#
#        Order Allow,Deny
#   Allow from all
#

Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</pre>
<p>Após isso vá até seu arquivo .htaccess dentro da pasta Public de seu ZendFrameworkQuickStart e altere a última linha que contém &#8220;RewriteRule ^.*$ index.php [NC,L]&#8221; e troque por &#8220;RewriteRule ^.*$ /guestbook/index.php [NC,L]&#8221; adicionando na frente o seu alias, no meu caso &#8220;/guestbook/&#8221;.</p>
<p style="text-align: justify;">Reinicie o seu servidor e após acesse a url <a href="http://localhost/guestbook" target="_blank">http://localhost/guestbook</a></p>
<p style="text-align: justify;">Se você está visualizando em seu navegador a seguinte frase <em>“Welcome to the Zend Framework!”</em>, <strong>parabéns</strong> você conseguiu fazer funcionar o QuickStart da Zend.  Se não conseguiu, peço que reveja os passos acima ou comente este post dizendo o problema que ocorreu.</p>
<p style="text-align: justify;">Bom pessoal, por enquanto é isso, em breve estarei postando a Parte 2, aonde mexeremos com o Zend_Amf.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/integrando-flex-zend-framework-usando-o-quickstart-da-zend-parte-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

