Desenvolvendo aplicações web com o framework cakephp
O documento resume as principais características e funcionalidades do framework CakePHP para desenvolvimento web, incluindo sua arquitetura MVC, o uso de modelos, views e controllers, helpers, components e formulários.
O que éum framework? Muitas funcionalidades são compartilhados por uma família de aplicações(validação, persistência, etc ...) Gasta-se muito tempo provendo e testando estas funcionalidades para cada aplicação Um framework fornece um esqueleto de funcionalidades projetado para ser reutilizável
3.
O que éo CakePHP Framework de desenvolvimento rápido em PHP Utiliza a arquitetura MVC ORM - Mapeamento Objeto Relacional Utiliza URLs amigáveis(mod_rewrite) Estrutura de diretórios simples e clara Atualmente na versão 1.2.5 Stable
4.
Arquitetura MVC Aarquitetura MVC divide a aplicação em três partes para facilitar o desenvolvimento e manutenção: Model(Modelo) View(Visão) Controller(Controle)
5.
Modelo(Model) Representam osdados da aplicação Normalmente é associado a uma tabela do banco de dados É responsável pela persistência dos dados(inserir, atualizar, deletar, buscar) e validação, associação ... Definimos os relacionamentos entre os dados
6.
Modelo (Model) Exemplo(/app/models/contato.php): <? class Contato extends AppModel{ var $name = "Contato"; var $validate = array( "nome"=>array( ‘ rule’=>VALID_NOT_EMPTY, ‘ message’=>’O nome do contato deve ser preenchido’ ); } ?>
7.
Associações entre Modelos(Model) hasOne (Um Usuário tem um Perfil. ) belongsTo (Um Artigo pertence a uma Categoria) hasMany (Uma Categoria tem muitos Artigos) belongsAndHasMany (Um cliente loca vários DVDs , um DVD é locado por vários clientes)
8.
Associações entre Modelos(Model)<?php class Funcionario extends AppModel{ var $name = "Funcionario"; ... var $belongsTo = array("Empresa"); } ?> ---------------------------------------------------- <?php class Empresa extends AppModel{ var $name = “Empresa"; ... var $hasMany = array(“Funcionario"); } ?>
Controle(Controller) Responsável pelotratamento das requisições feitas pelo cliente Executa a lógica especifica da aplicação As operações do banco de dados são feitas através de uma instância do modelo na camada de controle $this->Contato->save($dados) Define os dados a serem utilizados na Visão(view)
11.
Controle (Controller) Exemplo(/app/controllers/contatos_controller.php):<? class ContatosController extends AppController{ var $name = "ContatosController"; var $uses = array(“Contato”); var helpers =array(“Html”,”Form”,”Javascript”); function infocontato( $id ){ // algum codigo } } ?>
12.
Visão (View) Interfacecom usuário e/ou outro sistema; Fornece uma maneira de visualizar os dados; Saída diversa: HTML, PDF, …
Helpers Hepers sãoobjetos que fornecem funcionalidades genéricas para a view, como criar formulários, paginação de resultados , e diversas outras tags Os helpers são declarados no controle e só podem ser utilizados na Visão(View)
Components Lógica genérica para se utilizada nos controllers Upload de arquivos, Envio de e-mail, controle de acesso....
21.
Component - SessionO CakePHP fornece um Component para trabalhar com Sessões $this->Session->write(nome,valor); $this->Session->read(nome); $this->Session->setFlash(texto);
Passando valores parao view As variáveis criadas no controller não serão acessíveis na view Para passar valores para view utiliza-se o método: $this->set( ‘nomeNaView’ , $valor ); Na view será disponível uma variável $nomeNaView que terá o valor contido em $valor
26.
Formulários Para acriação de formulários o CakePHP fornece um Helper “Form” <?php echo $form->Create(‘Contato’); $form->input(‘Contato.nome’, array(‘label’=>’Nome:’)); echo $form->end(‘Salvar’); ?>