CakePHP + Adobe Flex®, v2

Embed Size (px)

Citation preview

Aplicaes com mais do que um rostinho bonito

CakePHP + Adobe Flex

Cauan Cabral

Tpicos

RIA's isso novo?

FLEX uma alternativa atraente;

AMF a lngua natural;

AMF e PHP opes para todos os gostos;

AMF e PHP fluxo de trabalho;

CakePHP cozinhando os servios;

CakePHP e AMF fcil falar essa lngua?

Aplicao de exemplo Pagode;

Adicionando FLEX a receita do bolo;

Dvidas?;

Consideraes;

RIA's isso novo?

O que RIA:RIA Rich Internet Application

Define uma classe de aplicaes que rodam direto da web e do enfase na experincia do usurio.

Exemplo conhecidos: Gmail, Google Docs, Photoshop.com.

Podemos criar RIA's utilizando javascript, Flash, Flex, Silverlight, JavaFX,...

RIA no algo novo.

FLEX uma alternativa atraente

FLEX SDK open-source para desenvolvimento de RIA;

Utiliza plataforma Flash;

Utiliza-se duas linguagens: MXML e ActionScript;

MXML um XML com tags pr-definidas que podem gerar componentes ou definir aes;

ActionScript uma linguagem de programao, semelhante ao JavaScript que permite controle da aplicao FLEX.

FLEX uma alternativa atraente

Aplicao FLEX executada no computador do usurio (client-side);

Alguma forma de comunicao com o servidor precisa ser estabelecida;

Formas usuais: XML (incluindo XHTML), JSON e texto puro;Problema:XML e texto puro consomem muita banda;

JSON implica em um overhead, preciso converter tudo que ser enviado para JSON e depois reverter para um formato nativo.

AMF a lngua natural

FLEX possui um formato prprio de comunicao Action Message Format (AMF);

O AMF um formato binrio e nativo dentro da plataforma Flash/Flex;

AMF a lngua natural

Fonte: http://www.jamesward.com/census/

AMF e PHP opes para todos os gostos

Do lado cliente no precisamos nos preocupar com o formato AMF ele nativo;

Do lado servidor o PHP ainda no oferece um suporte padro para o formato (da forma que fornece para o JSON e XML);

Existem vrias implementaes do AMF para PHP e at mesmo EM PHP.

AMF e PHP opes para todos os gostos

AMFPHP Uma das primeiras implementaes, est sem desenvolvimento a mais de 1 ano;

AMFEXT Extenso escrita em C para fornecer suporte ao AMF;

Zend_AMF parte do Zend Framework e fruto de parceria entre Adobe e Zend. Possui como principal desenvolvedor o criador do AMFPHP;

WebORB for PHP soluo completa para comunicao utilizando AMF agregada a servios avanados. Possui verso grtis (limitada) e paga.

AMF e PHP fluxo de trabalho

Cliente

navegador/flashplayer

Servidor

Apache

Requisio

Resposta

ComunicaoUtilizando AMF

PHP

MySQL

AMF e PHP fluxo de trabalho

Cliente: para apresentar informaes ao usurio, faz requisio dos dados ao servidor;

Servidor: recebe o pedido, identifica o contedo da mensagem utilizando alguma das implementaes do AMF para PHP;

Servidor: retorna o resultado de suas operaes, tambm em AMF;

Cliente: recebe a resposta e apresenta para o usurio.

AMF e PHP fluxo de trabalho

O fluxo de trabalho semelhante ao de uma aplicao Ajax;

Recebe requisio Processa Retorna resultado;

H uma boa separao de cdigo (cliente servidor), o que facilita atualizaes e escalabilidade.

CakePHP cozinhando os servios

CakePHP um framework PHP popular que implementa reconhecidos padres de desenvolvimento: MVC e ORM;

Possui gerador de cdigo (shell): bake;

Facilita TDD;

Tem comunidade muito ativa e participativa, alm de extensa, inclusive no Brasil.

CakePHP cozinhando os servios

Separao dos ambientes cliente e servidor;

Utilizando o CakePHP construmos uma aplicao rapidamente;

O objetivo do CakePHP agilizar o desenvolvimento dos nossos servios.

No h iterao entre o CakePHP e a aplicao Flex alm das requisies e respostas.

CakePHP e AMF fcil falar essa lngua?

Assim como o PHP, o CakePHP ainda no possui uma implementao padro e nativa do AMF;

Existem vrias formas de se integrar o AMF ao CakePHP;

CakePHP e AMF fcil falar essa lngua?

Formas de integrao:AMFPHP podemos usar a biblioteca AMFPHP dentro do conceito de vendors. Inclumos ela ao nosso projeto e chamamos sempre que necessrio;

CakeAmfPHP plugin para CakePHP, um dos primeiros a serem desenvolvidos, est parado na verso 0.6 (utiliza AMFPHP);

CakePHP e AMF fcil falar essa lngua?

Formas de integrao:CakeAMF plugin que possui como desenvolvedores parte do CORE Team do CakePHP (utiliza AMFEXT);

CpAMF plugin que tem como base o CakeAmfPHP, possui atualizaes constantes (utiliza AMFEXT ou AMFPHP);

FlexibleCake controller que intercepta chamadas e retorna contedo AMF (utiliza Zend_AMF);

Aplicao de Exemplo Pagode

O que o Pagode:Aplicao simples para controle das finanas pessoais;

A aplicao do exemplo um esboo de soluo, apenas para demonstrar a iterao do PHP + Flex;

O Pagode um projeto idealizado pelo PHPMS.

Aplicao de Exemplo Pagode

Criando a aplicao utilizando o CakePHP;

Precisamos apenas definir o banco de dados de nossa aplicao;

Para ver o fonte da aplicao, faa um checkout ou export do repositrio: http://svn.radig.com.br/pagode

Adicionando Flex a receita do bolo

Utilizaremos:AMFEXT;

CakeAMF para integrar o AMFEXT ao CakePHP.

Idia:O plugin CakeAMF ir interceptar as requisies e devolver o resultado em AMF.

Adicionando Flex a receita do bolo

Construindo interface da aplicao: um pouco de MXML e AS3.

Definindo nosso gateway que passar os dados para a aplicao Flex.

Visualizando o resultado.

Dvidas?

Consideraes

Flex uma alternativa atraente para criao de interfaces de sistemas: gratuito (o SDK);

Sua API grfica muito boa vide o flashplayer;

Capacidade de se conectar atravs de diferentes tipos de dados (AMF, XML, JSON, )

Unindo a facilidade e poder de fogo do Flex removemos as amarras das sandbox para javascript e incompatibilidade de renderizao entre browser do html e css.

Bnus

Para quem j trabalha com CakePHP:Alguns membros do CORE de desenvolvimento do CakePHP, juntamente com outros desenvolvedores criaram o FAKE, um framework MVC para ActionScript3, que segue as convenes do CakePHP, tornando mais fcil se adaptar a esta linguagem.

Fonte: http://code.google.com/p/fake-as3/

Contato...

Email: [email protected]

Blog: http://geek.cauancabral.net

MSN: [email protected]

Gtalk: [email protected]

Twitter: cauancabral

IRC @ Freenode: CauanCabral

http://linkedin.com/in/cauancabral

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level