SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Introdução ao CakePHP
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Apresentação


     Daniel Golgher é tecnólogo em Processamento de Dados, Bacharel em
 

     Sistema de Informação e Especialista em Engenharia de Software.
     Desenvolve em PHP desde 2001 e é sócio da 2km interativa!, empresa
     mineira que desenvolveu mais de 20 projetos utilizando o CakePHP nos
     últimos 12 meses.
     Gosta de software livre, especialmente dos projetos: CakePHP,
     FreeBSD, MySQL, Apache, PHP, Python dentre outros.
     Nas horas vagas vai ao cinema com a namorada e passeia com o Baco
     (São Bernardo).
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Motivação



     Divulgar o framework CakePHP
 


     Retribuir à comunidade de software livre
 


     Combater o código 'espaguete'
 


     Mostrar que programar pode ser divertido!
 
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
O que é um framework?


Um framework é uma infra-estrutura ou esqueleto
de uma família de aplicações projetado para ser
reutilizado.
  Vantagens:
    Redução do tempo de codi cação;


    Soluções bem testadas por outras pessoas;


    Programadores implementam somente o que é

     necessário;
    Redução de erros.
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
O que o CakePHP oferece?

     Suporte ao MVC
 


     ORM – Mapeamento objeto-relacional
 


     Helpers (Visão), Components (Controle) e Behaviors
 

     (Modelo)
     Internacionalização e Localização (i18n e l10n)
 


     Testes integrados
 


     Validações
 


     ACL (Lista de controle de acesso) e Autenticação
 


     Segurança
 


     Geração de Código (Bake)
 


     Convenção sobre con guração e muito mais...
 
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Estrutura de diretórios


/projetos
  /app → Diretório da aplicação
     /con g → Diretório dos arquivos de con guração
     /controllers → Diretório das classes de controle
     /models → Diretório das classes de modelo
     /views → Diretório das páginas/elementos da visão
     /webroot → www_root, img, js e css
  /cake → Diretório do framework
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Fluxo de uma requisição




http://www.exemplo.com/usuarios/login
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Con gurando a conexão com o banco de dados

<?php	
class DATABASE_CONFIG {	

       	var $default = array(	
       	       	'driver' => 'mysql',	
       	       	'persistent' => false,	
       	       	'host' => 'localhost',	
       	       	'login' => 'root',	
       	       	'password' => 'senha',	
       	       	'database' => 'curso_cake_2km',	
       	);	
}	
?>	

                                                   con g/database.php
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
MVC
<?php	
//Arquivo da Classe de Modelo	
class Usuario extends AppModel {	
        	var $name = 'Usuario';	
        	var $displayField = 'nome';	
}	
?>	

                                                                            models/usuario.php
<?php	
//Arquivo da Classe de Controle	
class UsuariosController extends AppController {	
    function teste($grupo_id=null){	
        $usuarios=$this->Usuario->find('list',array('conditions'=>array('grupo_id'=>$grupo_id)));	
        $this->set(compact('usuarios'));	
    }	
}	
?>	

                                                          controllers/usuarios_controller.php
<?php	
//Arquivo da Classe de Visão	
$form->create('Usuario',array('action'=>'teste'));	
$form->input('usuario');	
$form->end('Enviar');	
?>	

                                                                     views/usuarios/teste.ctp
MVC: Camada de modelo



     Mapeia a classe de modelo a uma tabela no banco
 

     de dados (ou a outras fontes de dados como
     webservices, LDAP, etc)
     De ne os relacionamentos entre os modelos
 


     Realiza as operações (Inserir, alterar, deletar,
 

     buscas, etc) no banco de dados
     As validações são feitas na camada de modelo, ao
 

     invés de ser feito na camada de controle
MVC: Camada de Controle



     Responsável pelas regras de negócio da aplicação
 


     As operações no banco de dados são feitas através
 

     de uma instância do modelo na camada de
     controle ($this->Usuario->save())
     De ne qual visão será exibida
 
MVC: Camada de Visão



     Interface com o usuário
 


     Possui mecanismos de reutilização de código
 

     (geralmente HTML) através de elements
     Uso de helpers para simpli car a construção de
 

     interfaces mais complexas
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Como acabar com o código espagueti?


Fazendo os cursos de desenvolvimento web que a
   2km interativa! está lançando:
  Curso do CakePHP (Arma contra o PHP à

   bolonhesa)
  Curso do jQuery (Arma conta o JavaScript ao

   sugo)
  Curso de Padrões Web (Arma contra o HTML e

   CSS ao molho 4 queijos)
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Referências


     Site o cial do CakePHP
 


         -  http://www.cakephp.org
     Manual do CakePHP em português
 


         -  http://book.cakephp.org/pt
     Artigos e tutoriais
 


         -  http://bakery.cakephp.org/
     Grupo do CakePHP em português
 


         -  http://groups.google.com/group/cake-php-pt/
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Agradecimentos


     Aos organizadores do 1º Encontro do PHP MG
 


     À Criasol pela oportunidade da palestra
 


     Ao CakePHP por facilitar a minha vida ;)
 


     À comunidade pela presença
 
Agenda

     Apresentação
 


     Motivação
 


     O que é um framework?
 


     O que o CakePHP oferece?
 


     Estrutura de diretórios
 


     Fluxo de uma requisição
 


     Con gurando a conexão com o banco de dados
 


     MVC no CakePHP
 


     Como acabar com o código espagueti?
 


     Referências
 


     Agradecimentos
 


     Perguntas
 
Perguntas?


Daniel Golgher
      -  E-mail: daniel@2km.com.br
      -  Twitter: @golgher




            www.2km.com.br - Twitter: @2km

Weitere ähnliche Inhalte

Was ist angesagt?

Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)Nuno Loureiro
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMaurício Linhares
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
Portlets: Let them make your virtual world
Portlets: Let them make your virtual worldPortlets: Let them make your virtual world
Portlets: Let them make your virtual worldelliando dias
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnicaSilvio Dias
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDaniel Paz
 
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel  - Core web vitals e WordPressWordCamp Floripa 2021 - Daniel  - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPressWordCamp Floripa
 

Was ist angesagt? (11)

Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)
 
Security & PHP
Security & PHPSecurity & PHP
Security & PHP
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação Web
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
Portlets: Let them make your virtual world
Portlets: Let them make your virtual worldPortlets: Let them make your virtual world
Portlets: Let them make your virtual world
 
Desempenho web
Desempenho webDesempenho web
Desempenho web
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnica
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
 
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel  - Core web vitals e WordPressWordCamp Floripa 2021 - Daniel  - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
 

Andere mochten auch

Joomla! como plataforma de desenvolvimento de soluções próprias
Joomla! como plataforma de desenvolvimento de soluções própriasJoomla! como plataforma de desenvolvimento de soluções próprias
Joomla! como plataforma de desenvolvimento de soluções própriasEmerson Rocha Luiz
 
Teacher, I blew up the lab. I am glad it was only a game. [PDF
Teacher, I blew up the lab. I am glad it was only a game. [PDFTeacher, I blew up the lab. I am glad it was only a game. [PDF
Teacher, I blew up the lab. I am glad it was only a game. [PDFRoger Tavares
 
O problema da utilização de CSS HACKS para garantia de resultados em diferent...
O problema da utilização de CSS HACKS para garantia de resultados em diferent...O problema da utilização de CSS HACKS para garantia de resultados em diferent...
O problema da utilização de CSS HACKS para garantia de resultados em diferent...Richard Duchatsch Johansen
 
Aula 4 - Tecnicas de Prototipação I
Aula 4 - Tecnicas de Prototipação IAula 4 - Tecnicas de Prototipação I
Aula 4 - Tecnicas de Prototipação IPaolo Passeri
 
Apresentação da Comunidade PHPDF
Apresentação da Comunidade PHPDFApresentação da Comunidade PHPDF
Apresentação da Comunidade PHPDFDaniel Maffioletti
 
Criatividade Comercial - Trust Summit 2014
Criatividade Comercial - Trust Summit 2014Criatividade Comercial - Trust Summit 2014
Criatividade Comercial - Trust Summit 2014Marcos David Bendrao
 
Web semântica e html5 na recuperação de conteúdo informacional
Web semântica e html5 na recuperação de conteúdo informacionalWeb semântica e html5 na recuperação de conteúdo informacional
Web semântica e html5 na recuperação de conteúdo informacionalRichard Duchatsch Johansen
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design PatternsBruno Cicanci
 
FLISOL 2009 - Modelos de Negócios com Software Livre
FLISOL 2009 - Modelos de Negócios com Software LivreFLISOL 2009 - Modelos de Negócios com Software Livre
FLISOL 2009 - Modelos de Negócios com Software LivreFábio Prudente
 
#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5Leandro Santos
 
Moldere Apresentação - Empreendendo.me
Moldere Apresentação - Empreendendo.meMoldere Apresentação - Empreendendo.me
Moldere Apresentação - Empreendendo.meLeandro Santos
 
Visão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South AmericaVisão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South AmericaEmerson Rocha Luiz
 
Time line do armazenamento de dados
Time line do armazenamento de dadosTime line do armazenamento de dados
Time line do armazenamento de dadosFlavio Souza
 
090916 Roteiro01
090916 Roteiro01090916 Roteiro01
090916 Roteiro01Diego Doná
 
Escreva menos e faça mais com a jQuery
Escreva menos e faça mais com a jQueryEscreva menos e faça mais com a jQuery
Escreva menos e faça mais com a jQuery2km interativa!
 

Andere mochten auch (20)

Joomla! como plataforma de desenvolvimento de soluções próprias
Joomla! como plataforma de desenvolvimento de soluções própriasJoomla! como plataforma de desenvolvimento de soluções próprias
Joomla! como plataforma de desenvolvimento de soluções próprias
 
Teacher, I blew up the lab. I am glad it was only a game. [PDF
Teacher, I blew up the lab. I am glad it was only a game. [PDFTeacher, I blew up the lab. I am glad it was only a game. [PDF
Teacher, I blew up the lab. I am glad it was only a game. [PDF
 
REVISTA COMPUTER ARTS BRASIL #52
REVISTA COMPUTER ARTS BRASIL #52REVISTA COMPUTER ARTS BRASIL #52
REVISTA COMPUTER ARTS BRASIL #52
 
O problema da utilização de CSS HACKS para garantia de resultados em diferent...
O problema da utilização de CSS HACKS para garantia de resultados em diferent...O problema da utilização de CSS HACKS para garantia de resultados em diferent...
O problema da utilização de CSS HACKS para garantia de resultados em diferent...
 
Aula 4 - Tecnicas de Prototipação I
Aula 4 - Tecnicas de Prototipação IAula 4 - Tecnicas de Prototipação I
Aula 4 - Tecnicas de Prototipação I
 
Apresentação da Comunidade PHPDF
Apresentação da Comunidade PHPDFApresentação da Comunidade PHPDF
Apresentação da Comunidade PHPDF
 
HTML5
HTML5HTML5
HTML5
 
Criatividade Comercial - Trust Summit 2014
Criatividade Comercial - Trust Summit 2014Criatividade Comercial - Trust Summit 2014
Criatividade Comercial - Trust Summit 2014
 
Web semântica e html5 na recuperação de conteúdo informacional
Web semântica e html5 na recuperação de conteúdo informacionalWeb semântica e html5 na recuperação de conteúdo informacional
Web semântica e html5 na recuperação de conteúdo informacional
 
Apresentação PhpDescribe
Apresentação PhpDescribeApresentação PhpDescribe
Apresentação PhpDescribe
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design Patterns
 
FLISOL 2009 - Modelos de Negócios com Software Livre
FLISOL 2009 - Modelos de Negócios com Software LivreFLISOL 2009 - Modelos de Negócios com Software Livre
FLISOL 2009 - Modelos de Negócios com Software Livre
 
#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5#DeveloperDay - Front-end API html5
#DeveloperDay - Front-end API html5
 
I Heart Stuxnet
I Heart StuxnetI Heart Stuxnet
I Heart Stuxnet
 
Moldere Apresentação - Empreendendo.me
Moldere Apresentação - Empreendendo.meMoldere Apresentação - Empreendendo.me
Moldere Apresentação - Empreendendo.me
 
Visão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South AmericaVisão Geral do CMS e Framework Joomla - Business IT South America
Visão Geral do CMS e Framework Joomla - Business IT South America
 
Open Courseware 3D
Open Courseware 3DOpen Courseware 3D
Open Courseware 3D
 
Time line do armazenamento de dados
Time line do armazenamento de dadosTime line do armazenamento de dados
Time line do armazenamento de dados
 
090916 Roteiro01
090916 Roteiro01090916 Roteiro01
090916 Roteiro01
 
Escreva menos e faça mais com a jQuery
Escreva menos e faça mais com a jQueryEscreva menos e faça mais com a jQuery
Escreva menos e faça mais com a jQuery
 

Ähnlich wie Introdução ao CakePHP e MVC

Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoIgor Sobreira
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...Renato Shirakashi
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxAlmir Neto
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXManuel Lemos
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitFlávio Lisboa
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHPigorpimentel
 
Desenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveisDesenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveisManuel Lemos
 

Ähnlich wie Introdução ao CakePHP e MVC (20)

Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
Apresentando o CakePHP
Apresentando o CakePHPApresentando o CakePHP
Apresentando o CakePHP
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
 
Plugins
PluginsPlugins
Plugins
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Cake PHP
Cake PHPCake PHP
Cake PHP
 
CakePHP
CakePHPCakePHP
CakePHP
 
Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
 
Java web
Java webJava web
Java web
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 
Jpa de a à z por que conhecer jpa
Jpa de a à z  por que conhecer jpa Jpa de a à z  por que conhecer jpa
Jpa de a à z por que conhecer jpa
 
Desenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveisDesenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveis
 

Introdução ao CakePHP e MVC

  • 2. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 3. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 4. Apresentação Daniel Golgher é tecnólogo em Processamento de Dados, Bacharel em   Sistema de Informação e Especialista em Engenharia de Software. Desenvolve em PHP desde 2001 e é sócio da 2km interativa!, empresa mineira que desenvolveu mais de 20 projetos utilizando o CakePHP nos últimos 12 meses. Gosta de software livre, especialmente dos projetos: CakePHP, FreeBSD, MySQL, Apache, PHP, Python dentre outros. Nas horas vagas vai ao cinema com a namorada e passeia com o Baco (São Bernardo).
  • 5. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 6. Motivação Divulgar o framework CakePHP   Retribuir à comunidade de software livre   Combater o código 'espaguete'   Mostrar que programar pode ser divertido!  
  • 7. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 8. O que é um framework? Um framework é uma infra-estrutura ou esqueleto de uma família de aplicações projetado para ser reutilizado. Vantagens:   Redução do tempo de codi cação;   Soluções bem testadas por outras pessoas;   Programadores implementam somente o que é necessário;   Redução de erros.
  • 9. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 10. O que o CakePHP oferece? Suporte ao MVC   ORM – Mapeamento objeto-relacional   Helpers (Visão), Components (Controle) e Behaviors   (Modelo) Internacionalização e Localização (i18n e l10n)   Testes integrados   Validações   ACL (Lista de controle de acesso) e Autenticação   Segurança   Geração de Código (Bake)   Convenção sobre con guração e muito mais...  
  • 11. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 12. Estrutura de diretórios /projetos /app → Diretório da aplicação /con g → Diretório dos arquivos de con guração /controllers → Diretório das classes de controle /models → Diretório das classes de modelo /views → Diretório das páginas/elementos da visão /webroot → www_root, img, js e css /cake → Diretório do framework
  • 13. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 14. Fluxo de uma requisição http://www.exemplo.com/usuarios/login
  • 15. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 16. Con gurando a conexão com o banco de dados <?php class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => 'senha', 'database' => 'curso_cake_2km', ); } ?> con g/database.php
  • 17. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 18. MVC <?php //Arquivo da Classe de Modelo class Usuario extends AppModel { var $name = 'Usuario'; var $displayField = 'nome'; } ?> models/usuario.php <?php //Arquivo da Classe de Controle class UsuariosController extends AppController { function teste($grupo_id=null){ $usuarios=$this->Usuario->find('list',array('conditions'=>array('grupo_id'=>$grupo_id))); $this->set(compact('usuarios')); } } ?> controllers/usuarios_controller.php <?php //Arquivo da Classe de Visão $form->create('Usuario',array('action'=>'teste')); $form->input('usuario'); $form->end('Enviar'); ?> views/usuarios/teste.ctp
  • 19. MVC: Camada de modelo Mapeia a classe de modelo a uma tabela no banco   de dados (ou a outras fontes de dados como webservices, LDAP, etc) De ne os relacionamentos entre os modelos   Realiza as operações (Inserir, alterar, deletar,   buscas, etc) no banco de dados As validações são feitas na camada de modelo, ao   invés de ser feito na camada de controle
  • 20. MVC: Camada de Controle Responsável pelas regras de negócio da aplicação   As operações no banco de dados são feitas através   de uma instância do modelo na camada de controle ($this->Usuario->save()) De ne qual visão será exibida  
  • 21. MVC: Camada de Visão Interface com o usuário   Possui mecanismos de reutilização de código   (geralmente HTML) através de elements Uso de helpers para simpli car a construção de   interfaces mais complexas
  • 22. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 23. Como acabar com o código espagueti? Fazendo os cursos de desenvolvimento web que a 2km interativa! está lançando:   Curso do CakePHP (Arma contra o PHP à bolonhesa)   Curso do jQuery (Arma conta o JavaScript ao sugo)   Curso de Padrões Web (Arma contra o HTML e CSS ao molho 4 queijos)
  • 24. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 25. Referências Site o cial do CakePHP   -  http://www.cakephp.org Manual do CakePHP em português   -  http://book.cakephp.org/pt Artigos e tutoriais   -  http://bakery.cakephp.org/ Grupo do CakePHP em português   -  http://groups.google.com/group/cake-php-pt/
  • 26. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 27. Agradecimentos Aos organizadores do 1º Encontro do PHP MG   À Criasol pela oportunidade da palestra   Ao CakePHP por facilitar a minha vida ;)   À comunidade pela presença  
  • 28. Agenda Apresentação   Motivação   O que é um framework?   O que o CakePHP oferece?   Estrutura de diretórios   Fluxo de uma requisição   Con gurando a conexão com o banco de dados   MVC no CakePHP   Como acabar com o código espagueti?   Referências   Agradecimentos   Perguntas  
  • 29. Perguntas? Daniel Golgher -  E-mail: daniel@2km.com.br -  Twitter: @golgher www.2km.com.br - Twitter: @2km