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

Introdução ao Framework CakePHP

  • 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