CakePHP + Adobe Flex®, v2

  • 3,562 views
Uploaded on

Segunda versão da apresentação sobre integração entre o CakePHP e o Adobe Flex®. …

Segunda versão da apresentação sobre integração entre o CakePHP e o Adobe Flex®.
Esta apresentação foi utilizada durante o Latinoware 2009, realizado em Foz do Iguaçu/PR - Brasil.

Página do evento: www.latinoware.org

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,562
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
35
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Aplicações com mais do que um rostinho bonito CakePHP + Adobe Flex® Cauan Cabral
  • 2. Tópicos
    • RIA's – isso é novo?
    • 3. FLEX – uma alternativa atraente;
    • 4. AMF – a língua natural;
    • 5. AMF e PHP – opções para todos os gostos;
    • 6. AMF e PHP – fluxo de trabalho;
    • 7. CakePHP – cozinhando os serviços;
    • 8. CakePHP e AMF – é fácil falar essa língua?
    • 9. Aplicação de exemplo – Pagode;
    • 10. Adicionando FLEX a receita do bolo;
    • 11. Dúvidas?;
    • 12. Considerações;
  • 13. RIA's – isso é novo?
    • O que é RIA:
      • RIA – Rich Internet Application
      • 14. Define uma classe de aplicações que rodam direto da web e dão enfase na experiência do usuário.
      • 15. Exemplo conhecidos: Gmail, Google Docs, Photoshop.com.
      • 16. Podemos criar RIA's utilizando javascript, Flash, Flex, Silverlight, JavaFX,...
    • RIA não é algo novo.
  • 17. FLEX – uma alternativa atraente
    • FLEX – SDK open-source para desenvolvimento de RIA;
    • 18. Utiliza plataforma Flash;
    • 19. Utiliza-se duas linguagens: MXML e ActionScript;
    • 20. MXML é um XML com tags pré-definidas que podem gerar componentes ou definir ações;
    • 21. ActionScript é uma linguagem de programação, semelhante ao JavaScript que permite controle da aplicação FLEX.
  • 22. FLEX – uma alternativa atraente
    • Aplicação FLEX é executada no computador do usuário (client-side);
    • 23. Alguma forma de comunicação com o servidor precisa ser estabelecida;
    • 24. Formas usuais: XML (incluindo XHTML), JSON e texto puro;
      • Problema:
        • XML e texto puro consomem muita banda;
        • 25. JSON implica em um overhead, é preciso converter tudo que será enviado para JSON e depois reverter para um formato nativo.
  • 26. AMF – a língua natural
    • FLEX possui um formato próprio de comunicação – Action Message Format (AMF);
    • 27. O AMF é um formato binário e nativo dentro da plataforma Flash/Flex;
  • 28. AMF – a língua natural Fonte: http://www.jamesward.com/census/
  • 29. AMF e PHP – opções para todos os gostos
    • Do lado cliente não precisamos nos preocupar com o formato AMF – ele é nativo;
    • 30. Do lado servidor o PHP ainda não oferece um suporte padrão para o formato (da forma que fornece para o JSON e XML);
    • 31. Existem várias implementações do AMF para PHP e até mesmo EM PHP.
  • 32. AMF e PHP – opções para todos os gostos
    • AMFPHP – Uma das primeiras implementações, está sem desenvolvimento a mais de 1 ano;
    • 33. AMFEXT – Extensão escrita em C para fornecer suporte ao AMF;
    • 34. Zend_AMF – parte do Zend Framework e fruto de parceria entre Adobe e Zend. Possui como principal desenvolvedor o criador do AMFPHP;
    • 35. WebORB for PHP – solução completa para comunicação utilizando AMF agregada a serviços avançados. Possui versão grátis (limitada) e paga.
  • 36. AMF e PHP – fluxo de trabalho Cliente navegador/ flashplayer Servidor Apache Requisição Resposta Comunicação Utilizando AMF PHP MySQL
  • 37. AMF e PHP – fluxo de trabalho
    • Cliente: para apresentar informações ao usuário, faz requisição dos dados ao servidor;
    • 38. Servidor: recebe o pedido, identifica o conteúdo da mensagem utilizando alguma das implementações do AMF para PHP;
    • 39. Servidor: retorna o resultado de suas operações, também em AMF;
    • 40. Cliente: recebe a resposta e apresenta para o usuário.
  • 41. AMF e PHP – fluxo de trabalho
    • O fluxo de trabalho é semelhante ao de uma aplicação Ajax;
    • 42. Recebe requisição -> Processa -> Retorna resultado;
    • 43. Há uma boa separação de código (cliente -> servidor), o que facilita atualizações e escalabilidade.
  • 44. CakePHP – cozinhando os serviços
    • CakePHP é um framework PHP popular que implementa reconhecidos padrões de desenvolvimento: MVC e ORM;
    • 45. Possui gerador de código (shell): bake;
    • 46. Facilita TDD;
    • 47. Tem comunidade muito ativa e participativa, além de extensa, inclusive no Brasil.
  • 48. CakePHP – cozinhando os serviços
    • Separação dos ambientes “cliente” e “servidor”;
    • 49. Utilizando o CakePHP construímos uma aplicação rapidamente;
    • 50. O objetivo do CakePHP é agilizar o desenvolvimento dos nossos serviços.
    • 51. Não há iteração entre o CakePHP e a aplicação Flex além das requisições e respostas.
  • 52. CakePHP e AMF – é fácil falar essa língua?
    • Assim como o PHP, o CakePHP ainda não possui uma implementação padrão e nativa do AMF;
    • 53. Existem várias formas de se integrar o AMF ao CakePHP;
  • 54. CakePHP e AMF – é fácil falar essa língua?
    • Formas de integração:
      • AMFPHP – podemos usar a biblioteca AMFPHP dentro do conceito de “vendors”. Incluímos ela ao nosso projeto e chamamos sempre que necessário;
      • 55. CakeAmfPHP – plugin para CakePHP, um dos primeiros a serem desenvolvidos, está parado na versão 0.6 (utiliza AMFPHP);
  • 56. CakePHP e AMF – é fácil falar essa língua?
    • Formas de integração:
      • CakeAMF – plugin que possui como desenvolvedores parte do CORE Team do CakePHP (utiliza AMFEXT);
      • 57. CpAMF – plugin que tem como base o CakeAmfPHP, possui atualizações constantes (utiliza AMFEXT ou AMFPHP);
      • 58. FlexibleCake – controller que intercepta chamadas e retorna conteúdo AMF (utiliza Zend_AMF);
  • 59. Aplicação de Exemplo – Pagode
    • O que é o Pagode:
      • Aplicação simples para controle das finanças pessoais;
      • 60. A aplicação do exemplo é um esboço de solução, apenas para demonstrar a iteração do PHP + Flex;
      • 61. O Pagode é um projeto idealizado pelo PHPMS.
  • 62. Aplicação de Exemplo – Pagode
    • Criando a aplicação utilizando o CakePHP;
    • 63. Precisamos apenas definir o banco de dados de nossa aplicação;
    • 64. Para ver o fonte da aplicação, faça um checkout ou export do repositório: http://svn.radig.com.br/pagode
  • 65. Adicionando Flex a receita do bolo
    • Utilizaremos:
      • AMFEXT;
      • 66. CakeAMF para integrar o AMFEXT ao CakePHP.
    • Idéia:
      • O plugin CakeAMF irá interceptar as requisições e devolver o resultado em AMF.
  • 67. Adicionando Flex a receita do bolo
    • Construindo interface da aplicação: um pouco de MXML e AS3.
    • 68. Definindo nosso gateway que passará os dados para a aplicação Flex.
    • 69. Visualizando o resultado.
  • 70. Dúvidas?
  • 71. Considerações
    • Flex é uma alternativa atraente para criação de interfaces de sistemas:
      • É gratuito (o SDK);
      • 72. Sua API gráfica é muito boa – vide o flashplayer;
      • 73. Capacidade de se conectar através 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 renderização entre browser do html e css.
  • 74. Bônus
    • 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 convenções do CakePHP, tornando mais fácil se adaptar a esta linguagem.
      • 75. Fonte: http://code.google.com/p/fake-as3/
  • 76. Contato...
    • Email: [email_address]
    • 77. Blog: http://geek.cauancabral.net
    • 78. MSN: [email_address]
    • 79. Gtalk: [email_address]
    • 80. Twitter: cauancabral
    • 81. IRC @ Freenode: CauanCabral
    • 82. http://linkedin.com/in/cauancabral