por Lo Hackin
segunda-feira, 8 de junho de 2009
Roteiro
O PHP ontem e hoje Lgica x Apresentao MVC CakePHP Aplicao exemplo: Blog Concluses
segunda-feira, 8 de junho de 2009
Cardpio
Pratos do dia
Mamma mia!
PHP Carbonara
Lgica misturada a apresentao
Pratos do dia
Eita nis!
Sistema Ovo-Cozido
Rpido, fcil mas sempre fede no m
Pratos do dia
Oxente!
Arrumadinho MVC
Modelo-Viso-Controlador
Pratos do dia
Agora sim...
Lo Hackin
Lo Hackin desenvolvedor desde 96 e j passou por algumas das principais empresas de internet capixabas, desenvolvendo solues para internet, dispositivos mveis e desktop. Apaixonado por PHP a 7 anos, atualmente diretor executivo da Giran Solues e Ensino, onde trabalha como consultor e especialista em solues web.
Sobre o cozinheiro
Gerenciamento de projetos com SCRUM Prossionais altamente qualicados Informaes e reservas Participao ativa na comunidade contato@giran.com.br http://www.giran.com.br
segunda-feira, 8 de junho de 2009
CSM Consultoria e Treinamento especialidados Certied Java Scrum Master Ruby on Rails Curso e Certicao PHP Desenvolvimento gil ociais
em
br ev e
O PHP ontem
Linguagem para apps simples POGramadores doides Baixa remunerao Consistncia discutvel Falta de padres de design
Agravantes
Falta de conhecimento terico de programao Rpido == feito nas coxas Paradigma mal resolvido (Estrutural x OO) Script Kiddies, sobrinhos e amigos que mexem com informtica Herana estrutural: funes redundantes, includes, etc ...
O PHP hoje
Maturidade para solues corporativas OO verdadeiro Remunerao de gente Montes e montes de documentao N projetos ... FRAMEWORKS! Adoo por grandes empresas
Lgica x Apresentao
PHP espaguete
Lgica x Apresentao
Ops... Problemas!
Lgica x Apresentao
Programadores
Designers
Ops... Problemas!
Codicao e manuteno custosa Quebra pau com designers Redundncia de mtodos, funes, includes ... Despadronizao ruim!!! Segmentao da lgica
Lgica x Apresentao
Ops... Problemas!
= PHP Carbonara
Lgica x Apresentao
Apimentando a vida
MVC
O que MVC
Padro de arquitetura de software Separao da aplicao em trs partes:
MVC
Os dados da aplicao
A apresentao da informao
Caractersticas
Base funcional para toda a aplicao Conjunto de ferramentas, classes ... Consistncia e produtividade Desenvolvimento em paralelo Manuteno e escalabilidade menos custosa
MVC
MVC
O controller renderiza a view incluindo os dados de resposta da ao O controller devolve a resposta para o browser
http://site/hello
Frameworks PHP
MVC
fonte: http://www.phpframeworks.com
O que CakePHP
CakePHP um framework de desenvolvimento rpido para PHP que prov uma arquitetura extensvel para desenvolvimento, manuteno e implantao de aplicaces. Usando padres de projeto como MVC e ORM com conveno ao invs de congurao, o CakePHP reduz custos de desenvolvimento e ajuda desenvolvedores a escrever menos cdigo.
CakePHP
Lances Maneiros
Compatvel com PHP 4 e 5 Arquitetura MVC Helpers Ajax, HTML, JS e outros Componentes nativos para Email, Sesses, Segurana ... CRUD (Create-Read-Update-Delete) integrado ActiveRecord (ORM) Internacionalizao Comunidade ativa e crescente
segunda-feira, 8 de junho de 2009
CakePHP
Momento Ui!
CakePHP
NOFA!
Eu quero! :D
Ativa e crescente ?
Requisitos mnimos
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)
CakePHP
Jura ???
Instalando
Baixar o CakePHP (http://cakephp.org) Descompactar o arquivo em seu servidor web
CakePHP
Instalando
Congurar o http.conf
CakePHP
Instalando
Congurar o http.conf
CakePHP
Instalando
Execute e teste!
CakePHP
Estrutura Funcional
Model
Behaviors e Datasources
CakePHP
View
Helpers e Elements
Controller
Components
Estrutura de Arquivos
cong - congurao da app (banco, conf. ncleo, etc) controllers - controles da app locale - strings de internacionalizao models - modelos da app plugins - pacotes de plugins tmp - local de arquivos temporrios vendors - aplicativos de terceiros views - views do sistema webroot - raiz da aplicao
CakePHP
O primeiro bolo
Aplicao de blog
Listar Inserir Editar Deletar
O primeiro a gente
NUNCA
esquece ...
app/cong/database.php
segunda-feira, 8 de junho de 2009
Criando o model
Criar tabela na database escolhida
Criando o model
app/models/post.php
Convenes
MODEL
Nome da tabela SEMPRE no plural (ex.: model post -> tabela posts) Toda tabela deve possuir a chave primria id (auto-numrica ou com 36 caracteres)
CONTROLLER
Nome SEMPRE no plural (ex.: model post -> controller posts) Nome do arquivo no padro <model no plural>_controller.php
Criando o controller
app/controllers/posts_controller.php
helper $html->link
segunda-feira, 8 de junho de 2009
Acessando a ao
controller
http://localhost/posts
host
Executando a ao
Adicionando aes
app/controllers/posts_controller.php
Adicionando aes
app/views/posts/view.ctp
Acessando a ao
controller ao
http://localhost/posts/view/2
host ID
Adicionando aes
Modicando o layout
Layout View
Elements
Modicando o layout
/app/views/layouts/default.ctp
contedo da view
Modicando o layout
Antes Depois
Adicionando um post
app/controllers/posts_controller.php
Adicionando um post
app/views/posts/add.ctp FormHelper
Adicionando um post
app/views/posts/index.ctp
Adicionando um post
Validao de campos
app/models/post.php validao
Validao de campos
Deletando um post
app/controllers/posts_controller.php
Deletando um post
app/views/posts/index.ctp
conrma a operao
Deletando um post
Editando um post
app/controllers/posts_controller.php
Editando um post
app/views/posts/edit.ctp
Editando um post
app/views/posts/index.ctp
e tome helper
Editando um post
CRUD e Scaffolding
app/model/comment.php
Extras
app/model/comment.php
Extras
Desvantagens
No foi feito para ser exvel Baixa segurana (em seu estado default)
Extras
Extras
Desvantagens
Acostuma mal! :)
O CakePHP lento
Fato
Ele mais lento que o CI, seu principal concorrente.
Plemicas
Porque escolhi ?
O CakePHP apresenta uma suite de ferramentas mais robusta e completa que os outros, como ORM e suporte nativo a testes.
fonte: http://blog.cakephp-brasil.org
Concluses
Fcil de codicar ORM e MVC aumentam a produtividade Ferramentas de prototipao poderosas (bake/scaffold) Arquitetura consistente e exvel Helpers ajudam um bocado Codicao limpa, correta e sustentvel Ei, isso no foi to ruim anal. :D
Fechando o buteco
Perguntas ???
A resposta OBVIA!!!
Fechando o buteco
42
No suporto perguntas!
Fechando o buteco
leohackin@gmail.com
Skype
leohackin
Blog
www.leohackin.com.br/blog
F u i ...