Upload
paulo-figueiredo-vicente
View
204
Download
0
Embed Size (px)
Citation preview
CakePHPAprendendo a fazer o primeiro bolo
por Lo Hackinsegunda-feira, 8 de junho de 2009
RoteiroO PHP ontem e hoje Lgica x Apresentao MVC CakePHP Aplicao exemplo: Blog Conclusessegunda-feira, 8 de junho de 2009
Cardpio
Pratos do dia
Mamma mia!
PHP CarbonaraLgica misturada a apresentao
segunda-feira, 8 de junho de 2009
Pratos do dia
Eita nis!
Sistema Ovo-CozidoRpido, fcil mas sempre fede no m
segunda-feira, 8 de junho de 2009
Pratos do dia
Oxente!
Arrumadinho MVCModelo-Viso-Controlador
segunda-feira, 8 de junho de 2009
Pratos do dia
Agora sim...
E para sobremesa ... BOLO!
segunda-feira, 8 de junho de 2009
Lo HackinLo 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
segunda-feira, 8 de junho de 2009
Gerenciamento de projetos com SCRUM Prossionais altamente qualicados Informaes e reservas Participao ativa na comunidade [email protected] http://www.giran.com.brsegunda-feira, 8 de junho de 2009
CSM Consultoria e Treinamento especialidados Certied Java Scrum Master Ruby on Rails Curso e Certicao PHP Desenvolvimento gil ociaisem
br ev e
Giran Solues e Ensino
O PHP ontemLinguagem para apps simples POGramadores doides Baixa remunerao Consistncia discutvel Falta de padres de design
O PHP ontem e hoje
segunda-feira, 8 de junho de 2009
AgravantesFalta 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 ontem e Hoje
segunda-feira, 8 de junho de 2009
O PHP hojeMaturidade para solues corporativas OO verdadeiro Remunerao de gente Montes e montes de documentao N projetos ... FRAMEWORKS! Adoo por grandes empresas
O PHP ontem e Hoje
segunda-feira, 8 de junho de 2009
PHP gerando HTML
Lgica x Apresentao
segunda-feira, 8 de junho de 2009
PHP espaguete
Lgica x Apresentao
segunda-feira, 8 de junho de 2009
Ops... Problemas!
Lgica x Apresentao
X
Programadores
Designers
segunda-feira, 8 de junho de 2009
Ops... Problemas!Codicao e manuteno custosa Quebra pau com designers Redundncia de mtodos, funes, includes ... Despadronizao ruim!!! Segmentao da lgica
Lgica x Apresentao
segunda-feira, 8 de junho de 2009
Ops... Problemas!= PHP Carbonara
Lgica x Apresentao
segunda-feira, 8 de junho de 2009
Apimentando a vida
MVC
segunda-feira, 8 de junho de 2009
O que MVCPadro de arquitetura de software Separao da aplicao em trs partes:
MVC
Processa os eventos da aplicao
Os dados da aplicao
A apresentao da informao
segunda-feira, 8 de junho de 2009
CaractersticasBase funcional para toda a aplicao Conjunto de ferramentas, classes ... Consistncia e produtividade Desenvolvimento em paralelo Manuteno e escalabilidade menos custosa
MVC
segunda-feira, 8 de junho de 2009
Como funciona, tio ?Browser envia requisio aplicao O controller processa a ao O controller processa a requisio e acessa a lgica de negcio (model) da aplicao O model acessa a base de dados da aplicao para executar a ao requisitada pelo controller O controller ento seleciona a view correspondente a aoMysql, Postgres, Oracle e muitos outros
MVC
O controller renderiza a view incluindo os dados de resposta da ao O controller devolve a resposta para o browser
http://site/hello
segunda-feira, 8 de junho de 2009
Frameworks PHP
MVC
fonte: http://www.phpframeworks.com
segunda-feira, 8 de junho de 2009
O que CakePHPCakePHP 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
segunda-feira, 8 de junho de 2009
Lances ManeirosCompatvel 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 crescentesegunda-feira, 8 de junho de 2009
CakePHP
Momento Ui!
CakePHP
NOFA!Eu quero! :D
Ativa e crescente ?
segunda-feira, 8 de junho de 2009
Requisitos mnimosUm 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 ???
Opcional uma ova!!!!
segunda-feira, 8 de junho de 2009
InstalandoBaixar o CakePHP (http://cakephp.org) Descompactar o arquivo em seu servidor web
CakePHP
segunda-feira, 8 de junho de 2009
InstalandoCongurar o http.conf
CakePHP
segunda-feira, 8 de junho de 2009
InstalandoCongurar o http.conf
CakePHP
segunda-feira, 8 de junho de 2009
InstalandoExecute e teste!
CakePHP
segunda-feira, 8 de junho de 2009
Estrutura FuncionalModelBehaviors e Datasources
CakePHP
ViewHelpers e Elements
ControllerComponents
segunda-feira, 8 de junho de 2009
Estrutura de Arquivoscong - 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
segunda-feira, 8 de junho de 2009
O primeiro boloAplicao de blogListar Inserir Editar DeletarO primeiro a gente
Aplicao exemplo: Blog
NUNCAesquece ...
segunda-feira, 8 de junho de 2009
Conf. base no Cakeapp/cong/database.php.default
Aplicao exemplo: Blog
app/cong/database.phpsegunda-feira, 8 de junho de 2009
Criando o modelCriar tabela na database escolhida
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Criando o modelapp/models/post.php
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
ConvenesMODELNome da tabela SEMPRE no plural (ex.: model post -> tabela posts) Toda tabela deve possuir a chave primria id (auto-numrica ou com 36 caracteres)
Aplicao exemplo: Blog
CONTROLLERNome SEMPRE no plural (ex.: model post -> controller posts) Nome do arquivo no padro _controller.php
segunda-feira, 8 de junho de 2009
Criando o controllerapp/controllers/posts_controller.php
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Criando uma viewsapp/views/posts/index.ctp - listagem dos posts
Aplicao exemplo: Blog
helper $html->linksegunda-feira, 8 de junho de 2009
Acessando a aocontroller
Aplicao exemplo: Blog
http://localhost/postshost
segunda-feira, 8 de junho de 2009
Executando a ao
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Adicionando aesapp/controllers/posts_controller.php
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Adicionando aesapp/views/posts/view.ctp
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Acessando a aocontroller ao
Aplicao exemplo: Blog
http://localhost/posts/view/2host ID
segunda-feira, 8 de junho de 2009
Adicionando aes
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Modicando o layoutLayout View
Aplicao exemplo: Blog
Elements
segunda-feira, 8 de junho de 2009
Modicando o layout
Aplicao exemplo: Blog
/app/views/layouts/default.ctp
contedo da view
segunda-feira, 8 de junho de 2009
Modicando o layoutAntes Depois
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Adicionando um postapp/controllers/posts_controller.php
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Adicionando um postapp/views/posts/add.ctp FormHelper
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Adicionando um postapp/views/posts/index.ctp
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Adicionando um post
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Validao de camposapp/models/post.php validao
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Validao de campos
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Deletando um postapp/controllers/posts_controller.php
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Deletando um postapp/views/posts/index.ctp
Aplicao exemplo: Blog
conrma a operao
segunda-feira, 8 de junho de 2009
Deletando um post
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Editando um postapp/controllers/posts_controller.php
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Editando um postapp/views/posts/edit.ctp
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
Editando um postapp/views/posts/index.ctp
Aplicao exemplo: Blog
e tome helper
segunda-feira, 8 de junho de 2009
Editando um post
Aplicao exemplo: Blog
segunda-feira, 8 de junho de 2009
CRUD e Scaffoldingapp/model/comment.php
Extras
app/model/comment.php
segunda-feira, 8 de junho de 2009
CRUD via ScaffoldingVantagenstimo para prototipar aplicaes Pode ser usado numa app em produco Mamo com aucar!!
Extras
DesvantagensNo foi feito para ser exvel Baixa segurana (em seu estado default)
segunda-feira, 8 de junho de 2009
CRUD via Bake$ cd ./cake/console $ ./cake bake
Extras
segunda-feira, 8 de junho de 2009
CRUD via BakeVantagensCria esqueletos de models, views e controllers Ao contrrio do scaffold, cria arquivos reais na app Extremamente poderoso e funcional Permite congurar os modelos
Extras
DesvantagensAcostuma mal! :)
segunda-feira, 8 de junho de 2009
O CakePHP lentoFatoEle 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
segunda-feira, 8 de junho de 2009
ConclusesFcil 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
segunda-feira, 8 de junho de 2009
Perguntas ???A resposta OBVIA!!!
Fechando o buteco
42
No suporto perguntas!
segunda-feira, 8 de junho de 2009
Asta La Vista BabyLo Hackine-mail e MSN
Fechando o buteco
leohackinBlog
www.leohackin.com.br/blog
segunda-feira, 8 de junho de 2009
F u i ...
segunda-feira, 8 de junho de 2009