Introdução ao framework CakePHP

Preview:

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

#WTISC2012

Introdução ao framework CakePHP

com Igor Pimentel

www.igorpimentel.com

Quem?

Sistemas de Informação - UFC

Notorion - Sites e Sistemas Web

@igorpimentel

www.igorpimentel.com

Igor Pimentel

Sites Sistemas Web

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

CakePHP - é de comer?

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

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

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

CakePHP - Quem usa?

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

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

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

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)

!"#$%&% %'"()$%*+&*,&% !--$./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)

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)

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

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

Isso é MVC:

Controller

Model

View

MVC em Imagem

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.

Uma Requisição Típica do CakePHP

Preparando o Ambiente

Preparando o Ambiente

WAMP LAMP MAMP

Preparando o Ambiente

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

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

Testando...

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

Download:http://cakephp.org

Testando...

Diretórios do /APP

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

Testando...

Páginas no CakePHP

Páginas no CakePHP

APP/View/Pages

Páginas no CakePHP

Vamos criar Páginas....

Layouts no CakePHP

Layouts no CakePHPLayout

View

Layouts no CakePHP

APP/View/Layouts/default.ctp

Layouts no CakePHP

<?php echo $title_for_layout ?>

Layouts no CakePHP

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

Layouts no CakePHP

<?php echo $content_for_layout ?>

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

'programação',array(

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

)?>

Rotas no CakePHP

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

);

APP/Config/routes.php

Bônus*Querem?

Cadastro de Notícias

Arquivo: /APP/Model/Noticia.php

Nome da Classe: Noticia

Tabela no Banco: noticias

Model Noticia

Cadastro de NotíciasModel Noticia

<?phpclass Noticia extends AppModel{

}?>

Cadastro de Notícias

Arquivo: /APP/Controller/NoticiasController.php

Nome da Classe: NoticiasController

Controller Noticia

Cadastro de NotíciasController Noticia

<?phpclass NoticiasController extends AppController {

}?>

Cadastro de NotíciasController Noticia

<?phpclass NoticiasController extends AppController {

var $scaffold;}?>

Considerações Finais

Próximos passos...

1 - Aprenda (de verdade) PHP

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

3 - Faça Cursos

AgradecimentoESPECIAL!

Referências

Wikipedia

Cookbook

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

Obrigado!

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

Mais?@igorpiementel

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