0
CakePHP
                                    Aprendendo a fazer o primeiro bolo




                                       ...
Cardápio

                                      Roteiro
              O PHP ontem e hoje
              Lógica x Apresentaç...
Mamma mia!

                                      Pratos do dia



                                    PHP à Carbonara
   ...
Eita nóis!

                                        Pratos do dia



                                    Sistema Ovo-Cozid...
Oxente!

                                     Pratos do dia



                                    Arrumadinho MVC
       ...
Agora sim...

                                    Pratos do dia



                                    E para sobremesa .....
Sobre o cozinheiro

                                          Léo Hackin
                           Léo Hackin é desenvolv...
Giran Soluções e Ensino



                                         e
                                                    ...
O PHP ontem e hoje

                                    O PHP ontem

                  Linguagem para apps simples

      ...
O PHP ontem e Hoje

                                        Agravantes
                  Falta de conhecimento teórico de ...
O PHP ontem e Hoje

                                     O PHP hoje
                  Maturidade para soluções corporativa...
Lógica x Apresentação

                                    PHP gerando HTML




segunda-feira, 8 de junho de 2009
Lógica x Apresentação

                                    PHP espaguete




segunda-feira, 8 de junho de 2009
Lógica x Apresentação

                                    Ops... Problemas!


                                         X
...
Lógica x Apresentação

                                    Ops... Problemas!
              Codificação e manutenção custosa...
Lógica x Apresentação

                                    Ops... Problemas!

                                         =

...
Apimentando a vida

                                       MVC




segunda-feira, 8 de junho de 2009
MVC

                                            O que é MVC
                  Padrão de arquitetura de software

        ...
MVC

                                    Características
                  Base funcional para toda a aplicação

         ...
MVC

                                      Como funciona, tio ?
                                                          ...
MVC

                                               Frameworks PHP




         fonte: http://www.phpframeworks.com




se...
CakePHP

                                    O que é CakePHP
                   CakePHP é um framework de desenvolvimento
...
CakePHP

                                    Lances Maneiros
                  Compatível com PHP 4 e 5
                  ...
CakePHP

                                               Momento Ui!
                          Ativa e crescente ?

       ...
CakePHP

                                    Requisitos mínimos
                                                          ...
CakePHP

                                       Instalando
                 Baixar o CakePHP (http://cakephp.org)

       ...
CakePHP

                                         Instalando
                 Configurar o http.conf




segunda-feira, 8 d...
CakePHP

                                         Instalando
                 Configurar o http.conf




segunda-feira, 8 d...
CakePHP

                                    Instalando
                 Execute e teste!




segunda-feira, 8 de junho de...
CakePHP

                                    Estrutura Funcional
                                                     Mode...
CakePHP

                                    Estrutura de Arquivos
                                        config - configur...
Aplicação exemplo: Blog

                                    O primeiro bolo
    Aplicação de blog

                      ...
Aplicação exemplo: Blog

                                    Conf. base no Cake
        app/config/database.php.default



...
Aplicação exemplo: Blog

                                    Criando o model
        Criar tabela na database escolhida


...
Aplicação exemplo: Blog

                                    Criando o model
        app/models/post.php




segunda-feira...
Aplicação exemplo: Blog

                                              Convenções
        MODEL
                Nome da ta...
Aplicação exemplo: Blog

                                    Criando o controller
        app/controllers/posts_controller...
Aplicação exemplo: Blog

                                    Criando uma views
        app/views/posts/index.ctp - listage...
Aplicação exemplo: Blog

                                    Acessando a ação
                                            ...
Aplicação exemplo: Blog

                                    Executando a ação




segunda-feira, 8 de junho de 2009
Aplicação exemplo: Blog

                                    Adicionando ações
        app/controllers/posts_controller.ph...
Aplicação exemplo: Blog

                                    Adicionando ações
        app/views/posts/view.ctp




segund...
Aplicação exemplo: Blog

                                    Acessando a ação
                                        cont...
Aplicação exemplo: Blog

                                    Adicionando ações




segunda-feira, 8 de junho de 2009
Aplicação exemplo: Blog

                                    Modificando o layout
              Layout

                   ...
Aplicação exemplo: Blog

                                    Modificando o layout


                                       ...
Aplicação exemplo: Blog

                                    Modificando o layout
       Antes                             ...
Aplicação exemplo: Blog

                                    Adicionando um post
     app/controllers/posts_controller.php...
Aplicação exemplo: Blog

                                    Adicionando um post
     app/views/posts/add.ctp


          ...
Aplicação exemplo: Blog

                                    Adicionando um post
     app/views/posts/index.ctp




segund...
Aplicação exemplo: Blog

                                    Adicionando um post




segunda-feira, 8 de junho de 2009
Aplicação exemplo: Blog

                                    Validação de campos
        app/models/post.php


           ...
Aplicação exemplo: Blog

                                    Validação de campos




segunda-feira, 8 de junho de 2009
Aplicação exemplo: Blog

                                    Deletando um post
     app/controllers/posts_controller.php

...
Aplicação exemplo: Blog

                                    Deletando um post
     app/views/posts/index.ctp




        ...
Aplicação exemplo: Blog

                                    Deletando um post




segunda-feira, 8 de junho de 2009
Aplicação exemplo: Blog

                                    Editando um post
     app/controllers/posts_controller.php


...
Aplicação exemplo: Blog

                                    Editando um post
     app/views/posts/edit.ctp




segunda-fe...
Aplicação exemplo: Blog

                                    Editando um post
     app/views/posts/index.ctp




         ...
Aplicação exemplo: Blog

                                    Editando um post




segunda-feira, 8 de junho de 2009
Extras

                                    CRUD e Scaffolding
       app/model/comment.php




       app/model/comment.p...
Extras

                                    CRUD via Scaffolding
     Vantagens
                         Ótimo para protot...
Extras

                                    CRUD via Bake


       $ cd ./cake/console
       $ ./cake bake




segunda-fe...
Extras

                                         CRUD via Bake
      Vantagens
                            Cria “esqueleto...
Pôlemicas

                                                      O CakePHP é lento
                                       ...
Fechando o buteco

                                        Conclusões
                  Fácil de codificar
                ...
Fechando o buteco

                                    Perguntas ???
   A resposta é OBVIA!!!                Não suporto p...
Fechando o buteco

                                      Asta La Vista Baby
                                          Léo ...
F u i ...




segunda-feira, 8 de junho de 2009
Upcoming SlideShare
Loading in...5
×

Cakephp - Aprendendo a fazer o primeiro bolo

11,823

Published on

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

Published in: Technology, Self Improvement
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total Views
11,823
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
535
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×