SlideShare a Scribd company logo
1 of 17
Download to read offline
introdução ao framework

    CakePHP


                             Encontro
      Otávio Calaça         Tecnologias
otaviocx@gmail.com            Abertas
                      Goiânia, 06 de abril de 2010
Grupo de Desenvolvedores
           PHP de Goiás
   Criado em dezembro de 2007;
   Lista de Discussão:
     −   Mais de 400 membros.
   Encontros:
     −   Palestras;
     −   Networking.
   Site:
     −   www.gophp.com.br
   Eventos:
     −   FLISOL, FGSL, Latinoware, Conisli, CONSOFT, PHP
         Conference Brasil ...
Introdução ao CakePHP


                     Roteiro
• O que é MVC?
     – Vantagens
• O que é o CakePHP?
     – Por que usa-lo?
• MVC no CakePHP
     – Extensões Models, Views e Controllers
     – Estrutura de Diretórios
• Requisições e Rotas
• Abstração do Banco de Dados Relacional
• Fazendo um CRUD com CakePHP

                                               3
Introdução ao CakePHP


              O que é MVC?
• Aplicações Monolíticas
• Aplicações em duas camadas
• MVC (Model-View-Controller)
      –   Padrão de Arquitetura
      –   É um conceito
      –   Fácil manutenção
      –   Objetivos
      –   Frameworks

                                       4
Introdução ao CakePHP


           Vantagens do MVC

•   Reaproveitamento de código
•   Facilidade de manutenção
•   Integração de equipes e/ou divisão de tarefas
•   Camada de Persistência independente
•   Implementação de segurança
•   Facilidade na alteração da interface da
    aplicação
Introdução ao CakePHP


         O que é CakePHP

• Framework MVC destinado ao desenvolvimento
  ágil;
• Um “Core” para sua aplicação;
• Funciona com PHP 4;
• Rápido e Flexivel.
Introdução ao CakePHP


    CakePHP, por que usa-lo?

• Aprendizado fácil e rápido;
• Software Livre;
• Grande comunidade brasileira e muita
  documentação em português;
• Aplicações Scaffolding;
• Vários componentes já prontos;
• Tudas as vantagens que tem-se em usar
  qualquer framework.
Introdução ao CakePHP


         Desvantagens


• A compatibilidade com PHP 4 pode ser
  um problema;
• Várias convenções pré-definidas;
• Acoplamento relativamente alto.
Introdução ao CakePHP


       MVC no CakePHP

• Fluxo da Aplicação
Introdução ao CakePHP


            MVC no CakePHP

• Models

<?php
class Usuario extends AppModel {

     var $name = 'Usuario';
     var $useTable = 'usuario';
     var $validate = array(
         'id' => array('numeric')
     );

}
?>
Introdução ao CakePHP


             MVC no CakePHP

• Visão
<div class="produtos form">
<?php echo $form->create('Produto');?>
    <fieldset>
          <legend><?php __('Add Produto');?></legend>
          <?php
              echo $form->input('nome');
              echo $form->input('detalhes');
              echo $form->input('descricao');
          ?>
    </fieldset>
<?php echo $form->end('Submit');?>
</div>
<div class="actions">
    <ul>
         <li><?php echo $html->link(__('List Produtos', true), array('action'
=> 'index'));?></li>
    </ul>
</div>
Introdução ao CakePHP


            MVC no CakePHP

• Controlador
 class ProdutosController extends AppController {

     var $name = 'Produtos';
     var $helpers = array('Html', 'Form');

     function index() {
         $this->Produto->recursive = 0;
         $this->set('produtos', $this->paginate());
     }

     function view($id = null) {
         if (!$id) {
             $this->Session->setFlash(__('Invalid Produto.', true));
             $this->redirect(array('action'=>'index'));
         }
         $this->set('produto', $this->Produto->read(null, $id));
     }

     ...
 }
Introdução ao CakePHP


            Estrutura de Diretórios
• app
        – config → Configurações da Aplicação
        – controllers → Camada de Controle
        – locale
        – models → Camada de Modelo
        –   plugins
        –   tests
        –   tmp
        –   vendors
        – views → Camada de Visão
        – webroot → DocumentRoot da Aplicação
• cake → Núcleo do CakePHP
• vendors → códigos de terceiros                13
Introdução ao CakePHP


            Requisições e Rotas
• Rota típica: http://localhost/controller/action/parametros/




                                                          14
Introdução ao CakePHP


              Mãos á obra!


•   Instalando e configurando o CakePHP;
•   Fazendo um CRUD com Scaffolding;
•   Analisando o MVC no CakePHP;
•   Cozinhando com Bake;
      – Geração automática de views, controllers,
        models, configuração e ações do CRUD.
                                               15
Introdução ao CakePHP


                   Referências

• Site do CakePHP:
        – http://cakephp.org/

• Manual do CakePHP:
       – http://book.cakephp.org/

• CakePHP Book Store:
       – http://astore.amazon.com/cakesoftwaref-20

                                                     16
Introdução ao CakePHP


              FIM

        Perguntas?
Otávio Calaça – otaviocx@gmail.com
       http://poomax.com.br
             @otaviocx



         Obrigado!
                                     17

More Related Content

What's hot

Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAYelken Heckman Ferreira Gonzales
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
[GTS-BA] Ruby on rails 5 - UNIFAC
[GTS-BA] Ruby on rails 5 - UNIFAC[GTS-BA] Ruby on rails 5 - UNIFAC
[GTS-BA] Ruby on rails 5 - UNIFACGTS Bahia
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018André Luiz Forchesatto
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaFrederico Maia Arantes
 
ASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteComunidade NetPonto
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
Introdução ao cake php
Introdução ao cake phpIntrodução ao cake php
Introdução ao cake phpFilipe Kulinski
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
 

What's hot (20)

Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
Apostila MVC
Apostila MVCApostila MVC
Apostila MVC
 
Apresentando o CakePHP
Apresentando o CakePHPApresentando o CakePHP
Apresentando o CakePHP
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Angular js
Angular jsAngular js
Angular js
 
[GTS-BA] Ruby on rails 5 - UNIFAC
[GTS-BA] Ruby on rails 5 - UNIFAC[GTS-BA] Ruby on rails 5 - UNIFAC
[GTS-BA] Ruby on rails 5 - UNIFAC
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 
Introdução ao vraptor
Introdução ao vraptorIntrodução ao vraptor
Introdução ao vraptor
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
 
ASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto Proiete
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
Introdução ao cake php
Introdução ao cake phpIntrodução ao cake php
Introdução ao cake php
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 

Viewers also liked

cakephp 3.0 o bolo ainda serve muita gente
cakephp 3.0 o bolo ainda serve muita gentecakephp 3.0 o bolo ainda serve muita gente
cakephp 3.0 o bolo ainda serve muita gentetdc-globalcode
 
Kickstarter para jogos: É realmente necessário?
Kickstarter para jogos: É realmente necessário?Kickstarter para jogos: É realmente necessário?
Kickstarter para jogos: É realmente necessário?tdc-globalcode
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionOtávio Calaça Xavier
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeOtávio Calaça Xavier
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPOtávio Calaça Xavier
 
CakePHP para iniciantes
CakePHP para iniciantesCakePHP para iniciantes
CakePHP para iniciantesIgor Feghali
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxOtávio Calaça Xavier
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLOtávio Calaça Xavier
 
Como criar um artigo em 1 HORA
Como criar um artigo em 1 HORAComo criar um artigo em 1 HORA
Como criar um artigo em 1 HORAinfo_cimol
 
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
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 

Viewers also liked (20)

cakephp 3.0 o bolo ainda serve muita gente
cakephp 3.0 o bolo ainda serve muita gentecakephp 3.0 o bolo ainda serve muita gente
cakephp 3.0 o bolo ainda serve muita gente
 
Kickstarter para jogos: É realmente necessário?
Kickstarter para jogos: É realmente necessário?Kickstarter para jogos: É realmente necessário?
Kickstarter para jogos: É realmente necessário?
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and Induction
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizade
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHP
 
CakePHP para iniciantes
CakePHP para iniciantesCakePHP para iniciantes
CakePHP para iniciantes
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Introdução à Google Maps API
Introdução à Google Maps APIIntrodução à Google Maps API
Introdução à Google Maps API
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com Ajax
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Como criar um artigo em 1 HORA
Como criar um artigo em 1 HORAComo criar um artigo em 1 HORA
Como criar um artigo em 1 HORA
 
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
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 

Similar to CakePHP Introdução Framework

Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
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, 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
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPCBA2012
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP2km interativa!
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Cake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCBA2012
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Renzo Nuccitelli
 
Google App Engine e Python
Google App Engine e PythonGoogle App Engine e Python
Google App Engine e PythonPeslPinguim
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 

Similar to CakePHP Introdução Framework (20)

Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
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
 
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
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Plugins
PluginsPlugins
Plugins
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Cake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modelo
 
Cake Php
Cake PhpCake Php
Cake Php
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE
 
Google App Engine e Python
Google App Engine e PythonGoogle App Engine e Python
Google App Engine e Python
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 

More from Otávio Calaça Xavier

Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksOtávio Calaça Xavier
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a DecisãoOtávio Calaça Xavier
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPOtávio Calaça Xavier
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleOtávio Calaça Xavier
 

More from Otávio Calaça Xavier (6)

Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social Networks
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
PHP: Atualidade e Tendências
PHP: Atualidade e TendênciasPHP: Atualidade e Tendências
PHP: Atualidade e Tendências
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no Moodle
 

CakePHP Introdução Framework

  • 1. introdução ao framework CakePHP Encontro Otávio Calaça Tecnologias otaviocx@gmail.com Abertas Goiânia, 06 de abril de 2010
  • 2. Grupo de Desenvolvedores PHP de Goiás  Criado em dezembro de 2007;  Lista de Discussão: − Mais de 400 membros.  Encontros: − Palestras; − Networking.  Site: − www.gophp.com.br  Eventos: − FLISOL, FGSL, Latinoware, Conisli, CONSOFT, PHP Conference Brasil ...
  • 3. Introdução ao CakePHP Roteiro • O que é MVC? – Vantagens • O que é o CakePHP? – Por que usa-lo? • MVC no CakePHP – Extensões Models, Views e Controllers – Estrutura de Diretórios • Requisições e Rotas • Abstração do Banco de Dados Relacional • Fazendo um CRUD com CakePHP 3
  • 4. Introdução ao CakePHP O que é MVC? • Aplicações Monolíticas • Aplicações em duas camadas • MVC (Model-View-Controller) – Padrão de Arquitetura – É um conceito – Fácil manutenção – Objetivos – Frameworks 4
  • 5. Introdução ao CakePHP Vantagens do MVC • Reaproveitamento de código • Facilidade de manutenção • Integração de equipes e/ou divisão de tarefas • Camada de Persistência independente • Implementação de segurança • Facilidade na alteração da interface da aplicação
  • 6. Introdução ao CakePHP O que é CakePHP • Framework MVC destinado ao desenvolvimento ágil; • Um “Core” para sua aplicação; • Funciona com PHP 4; • Rápido e Flexivel.
  • 7. Introdução ao CakePHP CakePHP, por que usa-lo? • Aprendizado fácil e rápido; • Software Livre; • Grande comunidade brasileira e muita documentação em português; • Aplicações Scaffolding; • Vários componentes já prontos; • Tudas as vantagens que tem-se em usar qualquer framework.
  • 8. Introdução ao CakePHP Desvantagens • A compatibilidade com PHP 4 pode ser um problema; • Várias convenções pré-definidas; • Acoplamento relativamente alto.
  • 9. Introdução ao CakePHP MVC no CakePHP • Fluxo da Aplicação
  • 10. Introdução ao CakePHP MVC no CakePHP • Models <?php class Usuario extends AppModel { var $name = 'Usuario'; var $useTable = 'usuario'; var $validate = array( 'id' => array('numeric') ); } ?>
  • 11. Introdução ao CakePHP MVC no CakePHP • Visão <div class="produtos form"> <?php echo $form->create('Produto');?> <fieldset> <legend><?php __('Add Produto');?></legend> <?php echo $form->input('nome'); echo $form->input('detalhes'); echo $form->input('descricao'); ?> </fieldset> <?php echo $form->end('Submit');?> </div> <div class="actions"> <ul> <li><?php echo $html->link(__('List Produtos', true), array('action' => 'index'));?></li> </ul> </div>
  • 12. Introdução ao CakePHP MVC no CakePHP • Controlador class ProdutosController extends AppController { var $name = 'Produtos'; var $helpers = array('Html', 'Form'); function index() { $this->Produto->recursive = 0; $this->set('produtos', $this->paginate()); } function view($id = null) { if (!$id) { $this->Session->setFlash(__('Invalid Produto.', true)); $this->redirect(array('action'=>'index')); } $this->set('produto', $this->Produto->read(null, $id)); } ... }
  • 13. Introdução ao CakePHP Estrutura de Diretórios • app – config → Configurações da Aplicação – controllers → Camada de Controle – locale – models → Camada de Modelo – plugins – tests – tmp – vendors – views → Camada de Visão – webroot → DocumentRoot da Aplicação • cake → Núcleo do CakePHP • vendors → códigos de terceiros 13
  • 14. Introdução ao CakePHP Requisições e Rotas • Rota típica: http://localhost/controller/action/parametros/ 14
  • 15. Introdução ao CakePHP Mãos á obra! • Instalando e configurando o CakePHP; • Fazendo um CRUD com Scaffolding; • Analisando o MVC no CakePHP; • Cozinhando com Bake; – Geração automática de views, controllers, models, configuração e ações do CRUD. 15
  • 16. Introdução ao CakePHP Referências • Site do CakePHP: – http://cakephp.org/ • Manual do CakePHP: – http://book.cakephp.org/ • CakePHP Book Store: – http://astore.amazon.com/cakesoftwaref-20 16
  • 17. Introdução ao CakePHP FIM Perguntas? Otávio Calaça – otaviocx@gmail.com http://poomax.com.br @otaviocx Obrigado! 17