Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Cakephp - Aprendendo a fazer o primeiro bolo
1. CakePHP
Aprendendo a fazer o primeiro bolo
por Léo Hackin
segunda-feira, 8 de junho de 2009
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. Mamma mia!
Pratos do dia
PHP à Carbonara
Lógica misturada a apresentação
segunda-feira, 8 de junho de 2009
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. Oxente!
Pratos do dia
Arrumadinho MVC
Modelo-Visão-Controlador
segunda-feira, 8 de junho de 2009
6. Agora sim...
Pratos do dia
E para sobremesa ... BOLO!
segunda-feira, 8 de junho de 2009
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. 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. 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. 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. 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
14. Lógica x Apresentação
Ops... Problemas!
X
Programadores
Designers
segunda-feira, 8 de junho de 2009
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. Lógica x Apresentação
Ops... Problemas!
=
PHP à Carbonara
segunda-feira, 8 de junho de 2009
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. 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. 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. MVC
Frameworks PHP
fonte: http://www.phpframeworks.com
segunda-feira, 8 de junho de 2009
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. 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. CakePHP
Momento Ui!
Ativa e crescente ?
NOFA!
Eu quero! :D
segunda-feira, 8 de junho de 2009
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. CakePHP
Instalando
Baixar o CakePHP (http://cakephp.org)
Descompactar o arquivo em seu servidor web
segunda-feira, 8 de junho de 2009
27. CakePHP
Instalando
Configurar o http.conf
segunda-feira, 8 de junho de 2009
28. CakePHP
Instalando
Configurar o http.conf
segunda-feira, 8 de junho de 2009
29. CakePHP
Instalando
Execute e teste!
segunda-feira, 8 de junho de 2009
30. CakePHP
Estrutura Funcional
Model
Behaviors e Datasources
View
Helpers e Elements
Controller
Components
segunda-feira, 8 de junho de 2009
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. 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. 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. Aplicação exemplo: Blog
Criando o model
Criar tabela na database escolhida
segunda-feira, 8 de junho de 2009
35. Aplicação exemplo: Blog
Criando o model
app/models/post.php
segunda-feira, 8 de junho de 2009
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. Aplicação exemplo: Blog
Criando o controller
app/controllers/posts_controller.php
segunda-feira, 8 de junho de 2009
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. Aplicação exemplo: Blog
Acessando a ação
controller
http://localhost/posts
host
segunda-feira, 8 de junho de 2009
61. Extras
CRUD e Scaffolding
app/model/comment.php
app/model/comment.php
segunda-feira, 8 de junho de 2009
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. Extras
CRUD via Bake
$ cd ./cake/console
$ ./cake bake
segunda-feira, 8 de junho de 2009
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. 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. 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. Fechando o buteco
Perguntas ???
A resposta é OBVIA!!! Não suporto perguntas!
42
segunda-feira, 8 de junho de 2009
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