Cakephp - Aprendendo a fazer o primeiro bolo

12,669 views
12,532 views

Published on

Palestra ministrada no 1º Workshop PHP-ES pelo palestrante Léo Hackin (www.leohackin.com.br).

Published in: Technology, Self Improvement

Cakephp - Aprendendo a fazer o primeiro bolo

  1. 1. CakePHP Aprendendo a fazer o primeiro bolo por Léo Hackin segunda-feira, 8 de junho de 2009
  2. 2. Cardápio Roteiro O PHP ontem e hoje Lógica x Apresentação MVC CakePHP Aplicação exemplo: Blog Conclusões segunda-feira, 8 de junho de 2009
  3. 3. Mamma mia! Pratos do dia PHP à Carbonara Lógica misturada a apresentação segunda-feira, 8 de junho de 2009
  4. 4. Eita nóis! Pratos do dia Sistema Ovo-Cozido Rápido, fácil mas sempre fede no fim segunda-feira, 8 de junho de 2009
  5. 5. Oxente! Pratos do dia Arrumadinho MVC Modelo-Visão-Controlador segunda-feira, 8 de junho de 2009
  6. 6. Agora sim... Pratos do dia E para sobremesa ... BOLO! segunda-feira, 8 de junho de 2009
  7. 7. Sobre o cozinheiro Léo Hackin Léo Hackin é desenvolvedor desde 96 e já passou por algumas das principais empresas de internet capixabas, desenvolvendo soluções para internet, dispositivos móveis e desktop. Apaixonado por PHP a 7 anos, atualmente é diretor executivo da Giran Soluções e Ensino, onde trabalha como consultor e especialista em soluções web. segunda-feira, 8 de junho de 2009
  8. 8. Giran Soluções e Ensino e CSM ev br • Consultoria e Treinamento especialidados Certified em • Java • Ruby on Rails Scrum Master • PHP Curso e Certificação • Desenvolvimento ágil oficiais • Gerenciamento de projetos com SCRUM • Profissionais altamente qualificados • Participação ativa na comunidade Informações e reservas contato@giran.com.br • http://www.giran.com.br segunda-feira, 8 de junho de 2009
  9. 9. O PHP ontem e hoje O PHP ontem Linguagem para apps simples POGramadores doidões Baixa remuneração Consistência discutível Falta de padrões de design segunda-feira, 8 de junho de 2009
  10. 10. O PHP ontem e Hoje Agravantes Falta de conhecimento teórico de programação Rápido == feito nas coxas Paradigma mal resolvido (Estrutural x OO) Script Kiddies, sobrinhos e “amigos que mexem com informática” Herança estrutural: funções redundantes, includes, etc ... segunda-feira, 8 de junho de 2009
  11. 11. O PHP ontem e Hoje O PHP hoje Maturidade para soluções corporativas OO verdadeiro Remuneração “de gente” Montes e montes de documentação N projetos ... FRAMEWORKS! Adoção por grandes empresas segunda-feira, 8 de junho de 2009
  12. 12. Lógica x Apresentação PHP gerando HTML segunda-feira, 8 de junho de 2009
  13. 13. Lógica x Apresentação PHP espaguete segunda-feira, 8 de junho de 2009
  14. 14. Lógica x Apresentação Ops... Problemas! X Programadores Designers segunda-feira, 8 de junho de 2009
  15. 15. Lógica x Apresentação Ops... Problemas! Codificação e manutenção custosa Quebra pau com designers Redundância de métodos, funções, includes ... Despadronização é ruim!!! Segmentação da lógica segunda-feira, 8 de junho de 2009
  16. 16. Lógica x Apresentação Ops... Problemas! = PHP à Carbonara segunda-feira, 8 de junho de 2009
  17. 17. Apimentando a vida MVC segunda-feira, 8 de junho de 2009
  18. 18. MVC O que é MVC Padrão de arquitetura de software Separação da aplicação em três partes: Processa os eventos da aplicação Os dados da aplicação A apresentação da informação segunda-feira, 8 de junho de 2009
  19. 19. MVC Características Base funcional para toda a aplicação Conjunto de ferramentas, classes ... Consistência e produtividade Desenvolvimento em paralelo Manutenção e escalabilidade menos custosa segunda-feira, 8 de junho de 2009
  20. 20. MVC Como funciona, tio ? Browser envia requisição à aplicação O controller processa a ação O controller processa a requisição e acessa a lógica de negócio (model) da aplicação O model acessa a base de dados da aplicação para executar a ação requisitada pelo controller O controller então seleciona a view correspondente a ação O controller renderiza a view Mysql, Postgres, incluindo os dados de resposta Oracle e muitos da ação outros O controller devolve a resposta para o browser http://site/hello segunda-feira, 8 de junho de 2009
  21. 21. MVC Frameworks PHP fonte: http://www.phpframeworks.com segunda-feira, 8 de junho de 2009
  22. 22. CakePHP O que é CakePHP CakePHP é um framework de desenvolvimento rápido para PHP que provê uma arquitetura extensível para desenvolvimento, manutenção e implantação de aplicacões. Usando padrões de projeto como MVC e ORM com “convenção ao invés de configuração”, o CakePHP reduz custos de desenvolvimento e ajuda desenvolvedores a “escrever menos código”. segunda-feira, 8 de junho de 2009
  23. 23. CakePHP Lances Maneiros Compatível com PHP 4 e 5 Arquitetura MVC Helpers Ajax, HTML, JS e outros Componentes nativos para Email, Sessões, Segurança ... CRUD (Create-Read-Update-Delete) integrado ActiveRecord (ORM) Internacionalização Comunidade ativa e crescente segunda-feira, 8 de junho de 2009
  24. 24. CakePHP Momento Ui! Ativa e crescente ? NOFA! Eu quero! :D segunda-feira, 8 de junho de 2009
  25. 25. CakePHP Requisitos mínimos Jura ??? Um computador =) Servidor HTTP (Apache 2) PHP4 ou PHP5 Base de dados (opcional) MySQL, Postgres, SQL Server, Oracle, SQLite, ODBC, ADOdb, Firebird DB2 Café, chá ou suco (opcional) Opcional uma ova!!!! segunda-feira, 8 de junho de 2009
  26. 26. CakePHP Instalando Baixar o CakePHP (http://cakephp.org) Descompactar o arquivo em seu servidor web segunda-feira, 8 de junho de 2009
  27. 27. CakePHP Instalando Configurar o http.conf segunda-feira, 8 de junho de 2009
  28. 28. CakePHP Instalando Configurar o http.conf segunda-feira, 8 de junho de 2009
  29. 29. CakePHP Instalando Execute e teste! segunda-feira, 8 de junho de 2009
  30. 30. CakePHP Estrutura Funcional Model Behaviors e Datasources View Helpers e Elements Controller Components segunda-feira, 8 de junho de 2009
  31. 31. CakePHP Estrutura de Arquivos config - configuração da app (banco, conf. núcleo, etc) controllers - controles da app locale - strings de internacionalização models - modelos da app plugins - pacotes de plugins tmp - local de arquivos temporários vendors - aplicativos de terceiros views - views do sistema webroot - raiz da aplicação segunda-feira, 8 de junho de 2009
  32. 32. Aplicação exemplo: Blog O primeiro bolo Aplicação de blog Listar Inserir Editar Deletar O primeiro a gente NUNCA esquece ... segunda-feira, 8 de junho de 2009
  33. 33. Aplicação exemplo: Blog Conf. base no Cake app/config/database.php.default app/config/database.php segunda-feira, 8 de junho de 2009
  34. 34. Aplicação exemplo: Blog Criando o model Criar tabela na database escolhida segunda-feira, 8 de junho de 2009
  35. 35. Aplicação exemplo: Blog Criando o model app/models/post.php segunda-feira, 8 de junho de 2009
  36. 36. Aplicação exemplo: Blog Convenções MODEL Nome da tabela SEMPRE no plural (ex.: model post -> tabela posts) Toda tabela deve possuir a chave primária id (auto-numérica ou com 36 caracteres) CONTROLLER Nome SEMPRE no plural (ex.: model post -> controller posts) Nome do arquivo no padrão <model no plural>_controller.php segunda-feira, 8 de junho de 2009
  37. 37. Aplicação exemplo: Blog Criando o controller app/controllers/posts_controller.php segunda-feira, 8 de junho de 2009
  38. 38. Aplicação exemplo: Blog Criando uma views app/views/posts/index.ctp - listagem dos posts helper $html->link segunda-feira, 8 de junho de 2009
  39. 39. Aplicação exemplo: Blog Acessando a ação controller http://localhost/posts host segunda-feira, 8 de junho de 2009
  40. 40. Aplicação exemplo: Blog Executando a ação segunda-feira, 8 de junho de 2009
  41. 41. Aplicação exemplo: Blog Adicionando ações app/controllers/posts_controller.php segunda-feira, 8 de junho de 2009
  42. 42. Aplicação exemplo: Blog Adicionando ações app/views/posts/view.ctp segunda-feira, 8 de junho de 2009
  43. 43. Aplicação exemplo: Blog Acessando a ação controller ação http://localhost/posts/view/2 host ID segunda-feira, 8 de junho de 2009
  44. 44. Aplicação exemplo: Blog Adicionando ações segunda-feira, 8 de junho de 2009
  45. 45. Aplicação exemplo: Blog Modificando o layout Layout View Elements segunda-feira, 8 de junho de 2009
  46. 46. Aplicação exemplo: Blog Modificando o layout /app/views/layouts/default.ctp conteúdo da view segunda-feira, 8 de junho de 2009
  47. 47. Aplicação exemplo: Blog Modificando o layout Antes Depois segunda-feira, 8 de junho de 2009
  48. 48. Aplicação exemplo: Blog Adicionando um post app/controllers/posts_controller.php segunda-feira, 8 de junho de 2009
  49. 49. Aplicação exemplo: Blog Adicionando um post app/views/posts/add.ctp FormHelper segunda-feira, 8 de junho de 2009
  50. 50. Aplicação exemplo: Blog Adicionando um post app/views/posts/index.ctp segunda-feira, 8 de junho de 2009
  51. 51. Aplicação exemplo: Blog Adicionando um post segunda-feira, 8 de junho de 2009
  52. 52. Aplicação exemplo: Blog Validação de campos app/models/post.php validação segunda-feira, 8 de junho de 2009
  53. 53. Aplicação exemplo: Blog Validação de campos segunda-feira, 8 de junho de 2009
  54. 54. Aplicação exemplo: Blog Deletando um post app/controllers/posts_controller.php segunda-feira, 8 de junho de 2009
  55. 55. Aplicação exemplo: Blog Deletando um post app/views/posts/index.ctp confirma a operação segunda-feira, 8 de junho de 2009
  56. 56. Aplicação exemplo: Blog Deletando um post segunda-feira, 8 de junho de 2009
  57. 57. Aplicação exemplo: Blog Editando um post app/controllers/posts_controller.php segunda-feira, 8 de junho de 2009
  58. 58. Aplicação exemplo: Blog Editando um post app/views/posts/edit.ctp segunda-feira, 8 de junho de 2009
  59. 59. Aplicação exemplo: Blog Editando um post app/views/posts/index.ctp e tome helper segunda-feira, 8 de junho de 2009
  60. 60. Aplicação exemplo: Blog Editando um post segunda-feira, 8 de junho de 2009
  61. 61. Extras CRUD e Scaffolding app/model/comment.php app/model/comment.php segunda-feira, 8 de junho de 2009
  62. 62. Extras CRUD via Scaffolding Vantagens Ótimo para prototipar aplicações Pode ser usado numa app em producão Mamão com açucar!! Desvantagens Não foi feito para ser flexível Baixa segurança (em seu estado default) segunda-feira, 8 de junho de 2009
  63. 63. Extras CRUD via Bake $ cd ./cake/console $ ./cake bake segunda-feira, 8 de junho de 2009
  64. 64. Extras CRUD via Bake Vantagens Cria “esqueletos” de models, views e controllers Ao contrário do scaffold, cria arquivos reais na app Extremamente poderoso e funcional Permite configurar os modelos Desvantagens Acostuma mal! :) segunda-feira, 8 de junho de 2009
  65. 65. Pôlemicas O CakePHP é lento Fato Ele é mais lento que o CI, seu principal concorrente. Porque escolhi ? O CakePHP apresenta uma suite de ferramentas mais robusta e completa que os fonte: http://blog.cakephp-brasil.org outros, como ORM e suporte nativo a testes. segunda-feira, 8 de junho de 2009
  66. 66. Fechando o buteco Conclusões Fácil de codificar ORM e MVC aumentam a produtividade Ferramentas de prototipação poderosas (bake/scaffold) Arquitetura consistente e flexível Helpers ajudam um bocado Codificação limpa, correta e sustentável Ei, isso não foi tão ruim afinal. :D segunda-feira, 8 de junho de 2009
  67. 67. Fechando o buteco Perguntas ??? A resposta é OBVIA!!! Não suporto perguntas! 42 segunda-feira, 8 de junho de 2009
  68. 68. Fechando o buteco Asta La Vista Baby Léo Hackin e-mail e MSN leohackin@gmail.com Skype leohackin Blog www.leohackin.com.br/blog segunda-feira, 8 de junho de 2009
  69. 69. F u i ... segunda-feira, 8 de junho de 2009

×