50
#WTISC2012

Introdução ao framework CakePHP

Embed Size (px)

DESCRIPTION

Slides do minicurso Introdução ao framework CakePHP realizado nos dias 10 e 11 de maio durante o WTISC 2012 na Universidade Federal do Ceará - UFC (Campus Quixadá) por Igor Pimentel

Citation preview

Page 1: Introdução ao framework CakePHP

#WTISC2012

Page 2: Introdução ao framework CakePHP

Introdução ao framework CakePHP

com Igor Pimentel

www.igorpimentel.com

Page 3: Introdução ao framework CakePHP

Quem?

Sistemas de Informação - UFC

Notorion - Sites e Sistemas Web

@igorpimentel

www.igorpimentel.com

Igor Pimentel

Page 4: Introdução ao framework CakePHP
Page 5: Introdução ao framework CakePHP

Sites Sistemas Web

Page 6: Introdução ao framework CakePHP

Agenda10/MAIO

Um pouco de blá.. blá.. blá...

Preparando o ambiente

Mão na Massa

11/MAIO

Mão na Massa

Bônus*

Considerações Finais

Page 7: Introdução ao framework CakePHP

CakePHP - é de comer?

O que é?CakePHP é um framework PHP, gratuito, de código aberto, para desenvolvimento ágil.

*Foto: http://www.flickr.com/photos/koyhoge

Page 8: Introdução ao framework CakePHP

CakePHP - Por que usar?Comunidade ativa e amigável

Licensa flexível (MIT)

CRUD integrado para interação com o banco de dados

Scaffold de aplicação

Código gerado automáticamente (bake)

Arquitetura MVC

URLs amigáveis

Validação de dados

Template flexível e rápido

Helpers para HTML e Formulários, JavaScript e até AJAX

Componentes de Email, Cookies, Segurança, Sessão e manipulação de requisições

Controle de Acesso (ACL)

Multiplas configurações de cache

Localização e internacionalização

Roda em qualquer servidor web, práticamente sem configuração

Page 9: Introdução ao framework CakePHP

CakePHP - Quem usa?

!"#$%&% %'"()$%*+&*,&% !--$./0%1234-% %5336788$--$./09-234-,:0),;(8!

<,=% %>"4)%"-$?% @$A4BCB!

"##$%&&'(()'*&+',-$!Mais? http://goo.gl/Fg0wp

Page 10: Introdução ao framework CakePHP

CakePHP - O que fazer?

!"#$%&% %'"()$%*+&*,&% !--$./0%1234-% %5336788$--$./09-234-,:0),;(8!

<,=% %>%?"4%4"%@A%B2C%:0)%4#4D% E$F4GHG!

!"#$%&'()*!"#$%$&!'(()*++,-./0'1234/12+!!

!"#$%&'(%#%'%&)*)+&'+'$#",%'-+'./01+.2'+/'$"-"'"'/)3-"'!

56.738!93!-:-;<.1!3!692.7!

=1(1:>!?@931:>!26)6!3!!

/68379;<.1!93!9.:)17.A.8.9693!

B)8169!2C8(.)81!/12!A6<<6!93!

)<1D<3::1!3!)<3?.3E!96!F1(1!

G.(3!2-8(.H.9.126!".%I7&!

J11D83!K9L676D3<!3!J11D83!

L6):!

*Portfólio de Thiago Belém (http://thiagobelem.net)

Page 11: Introdução ao framework CakePHP

!"#$%&% %'"()$%*+&*,&% !--$./0%1234-% %5336788$--$./09-234-,:0),;(8!

<,=% %>%?"4%4"%@A%B2C%:0)%4#4D% E$F4GHG!

!"#$%&'(')*+%),-!"##$%&&#'($)*+,+*-).(/.)(&!!

!"#$%&$%'()*)$(%$%+$,&'%&$%'-'.#'/$,#01%,0%2"0%&$%3',$".0%!

01234!5)&!6+-7'8!,'!.)7#*)8'!

!9)#):;!(+$+!'!.+8'7,<*-)!,'!,-:$)7-=-8-,+,'!1*+,>?@)!A-+!B))C8'!1*+7:8+#'!B))C8'!2+$:!

CakePHP - O que fazer?

*Portfólio de Thiago Belém (http://thiagobelem.net)

Page 12: Introdução ao framework CakePHP

O que é um Framework?

Um framework, em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. (Wikipedia)

Page 13: Introdução ao framework CakePHP

Framework

Frameworks facilitam o desenvolvimento, pois ao invés de se fazer tudo na "unha" ou "reinventar a roda" ele provê um conjunto funcionalidade prontas.

Framework != CMS

Framework != Padrões de Projeto

Framework != IDE

Framework != Biblioteca

Page 14: Introdução ao framework CakePHP

MVCMVC == Model-view-controller

É um padrão de arquitetura de aplicações que visa separar a lógica da aplicação (Model), da interface do usuário (View) e do fluxo da aplicação (Controller). Permite que a mesma lógica de negócios possa ser acessada e visualizada por várias interfaces.*Fonte: http://www.htmlstaff.org/ver.php?id=4500

Page 15: Introdução ao framework CakePHP

Isso é MVC:

Controller

Model

View

Page 16: Introdução ao framework CakePHP

MVC em Imagem

Page 17: Introdução ao framework CakePHP

MVC em TextoControllersOs controllers (controladores) manipulam as requisições e ajudam coordenando e preparando as respostas que serão enviadas para o cliente.

ViewsAs views (visões) formam a camada de apresentação no CakePHP. Elas geram as saídas para as requisições dos clientes transformando os dados que foram obtidos a partir dos models.

ModelsOs models (modelos) formam o coração de sua aplicação. Tratam das validações, armazenamento e recuperação dos seus dados.

Page 18: Introdução ao framework CakePHP

Uma Requisição Típica do CakePHP

Page 19: Introdução ao framework CakePHP

Preparando o Ambiente

Page 20: Introdução ao framework CakePHP

Preparando o Ambiente

WAMP LAMP MAMP

Page 21: Introdução ao framework CakePHP

Preparando o Ambiente

Page 22: Introdução ao framework CakePHP

Mão na massa...Instalando o XAMPP...

Download:http://www.apachefriends.org/pt_br/xampp.html

Page 23: Introdução ao framework CakePHP

Testando...

Page 24: Introdução ao framework CakePHP

Mão na massa...Instalando o CakePHP...

Download:http://cakephp.org

Page 25: Introdução ao framework CakePHP

Testando...

Page 26: Introdução ao framework CakePHP

Diretórios do /APP

Page 27: Introdução ao framework CakePHP

Configurações

Alterar o valor de Security.salt em APP/Config/core.php

Alterar o valor de Security.cipherSeed em APP/Config/core.php

Permissão de escrita no diretório APP/tmp (chmod 777)

Configurar banco de dados em APP/Config/database.php

Page 28: Introdução ao framework CakePHP

Testando...

Page 29: Introdução ao framework CakePHP

Páginas no CakePHP

Page 30: Introdução ao framework CakePHP

Páginas no CakePHP

APP/View/Pages

Page 31: Introdução ao framework CakePHP

Páginas no CakePHP

Vamos criar Páginas....

Page 32: Introdução ao framework CakePHP

Layouts no CakePHP

Page 33: Introdução ao framework CakePHP

Layouts no CakePHPLayout

View

Page 34: Introdução ao framework CakePHP

Layouts no CakePHP

APP/View/Layouts/default.ctp

Page 35: Introdução ao framework CakePHP

Layouts no CakePHP

<?php echo $title_for_layout ?>

Page 36: Introdução ao framework CakePHP

Layouts no CakePHP

<?php echo $this->Html->css('style') ?>

Page 37: Introdução ao framework CakePHP

Layouts no CakePHP

<?php echo $content_for_layout ?>

Page 38: Introdução ao framework CakePHP

Helpers<?phpecho $this->Html->link(

'programação',array(

'controller' => 'pages','action' => 'display','programacao')

)?>

Page 39: Introdução ao framework CakePHP

Rotas no CakePHP

Router::connect('<formato da url>', array('controller' => '<controller>', 'action' => '<action>')

);

APP/Config/routes.php

Page 40: Introdução ao framework CakePHP

Bônus*Querem?

Page 41: Introdução ao framework CakePHP

Cadastro de Notícias

Arquivo: /APP/Model/Noticia.php

Nome da Classe: Noticia

Tabela no Banco: noticias

Model Noticia

Page 42: Introdução ao framework CakePHP

Cadastro de NotíciasModel Noticia

<?phpclass Noticia extends AppModel{

}?>

Page 43: Introdução ao framework CakePHP

Cadastro de Notícias

Arquivo: /APP/Controller/NoticiasController.php

Nome da Classe: NoticiasController

Controller Noticia

Page 44: Introdução ao framework CakePHP

Cadastro de NotíciasController Noticia

<?phpclass NoticiasController extends AppController {

}?>

Page 45: Introdução ao framework CakePHP

Cadastro de NotíciasController Noticia

<?phpclass NoticiasController extends AppController {

var $scaffold;}?>

Page 46: Introdução ao framework CakePHP

Considerações Finais

Próximos passos...

1 - Aprenda (de verdade) PHP

2 - http://book.cakephp.org/2.0/pt

3 - Faça Cursos

Page 47: Introdução ao framework CakePHP
Page 48: Introdução ao framework CakePHP

AgradecimentoESPECIAL!

Page 49: Introdução ao framework CakePHP

Referências

Wikipedia

Cookbook

Material pessoal de Thiago Belém (www.thiagobelem.net)(slides 9, 10 e 11)

Page 50: Introdução ao framework CakePHP

Obrigado!

Slides:http://www.slideshare.net/igorpimentel

Mais?@igorpiementel

Código:https://github.com/igorpimentel/Minicurso-CakePHP