Download - Introdução ao framework CakePHP
#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