Minicurso de Cakephp

Preview:

DESCRIPTION

Apresentação utilizada no minicurso de CakePHP apresentado nos eventos: - Latinoware 2009 / COLAPHP ( http://latinoware.org/node/41 ) - 2º Workshop PHPMS ( http://www.phpms.org/workshops/186-2o-workshop-do-phpms );

Citation preview

Conhecendo o CakePHPConhecendo o CakePHP

Introdução ao Framework CakePHPIntrodução ao Framework CakePHP

Cauan CabralCauan Cabral

O que é CakePHP?O que é CakePHP?

Framework PHP gratuito e opensource;

Projeto com mais de 4 anos de desenvolvimento;

Tem como uma de suas principais características o uso de convenções no lugar de configurações;

Algumas característicasAlgumas características

Compatível com as versões do PHP entre 4.x e 5.2.x (release beta com suporte ao 5.3.x já liberado);

Framework Orientado a Objetos;

Divisão em camadas: MVC;

Abstração da camada de persistência: DBO;

Mapeamento Objeto Relacional: ORM;

Facilidades OferecidasFacilidades Oferecidas

Implementação de vários recursos utilizados com frequência no desenvolvimento de uma aplicação, alguns deles:

Componente para controle de acessos (Auth) e gestão de permissões (Acl);

Geração de formulários (FormHelper), código javascript (JavascriptHelper) e ajax (AjaxHelper);

Validação de dados embutida;

Mais facilidadesMais facilidades

Geração de código para CRUD (Create, Read, Update, Delete);

Internacionalização (i18n) e Localização (l10n) nativamente;

Suporte a uma grande variedade de bancos de dados nativamente;

Suporte a Cache;

Componentes para envio de Email, tratamento de requisições e vários outros;

EstruturaEstrutura

Models – Representam as “coisas” de sua aplicação;

Behaviors – Adicionam comportamentos aos models;

DataSource – Adicionam suporte há uma nova fonte de dados para seus models (ex.: Twitter e Facebook);

EstruturaEstrutura

Controllers – Fazem o “meio-de-campo” entre a apresentação (View) e os dados (Model);

Components – Adicionam funcionalidades ao controller;

Views – É a apresentação dos dados de seu sistema. Pode gerar uma saída em PDF, HTML, JSON...

Helpers – Adicionam funcionalidades a view, como para geração de formulários, tabelas...;

Vendors – Bibliotecas externas ao framework que podem ser usadas em qualquer parte da aplicação.

ConvençõesConvenções

Nome de classes:

Controllers: MyUsersController;

Models: MyUser;

Views: MyUserView;

Nomes de arquivos:

Controllers: my_users_controller.php;

Models: my_user.php

Views: my_users/underscored_action.ctp

Camadas do CakePHPCamadas do CakePHP

Mãos à massaMãos à massa

Vamos iniciar a construção de nossa aplicação utilizando o CakePHP;

Esta aplicação se chamará “Pagode” e é um sistema de gestão financeira pessoal.

ComeçandoComeçando

Precisamos fazer o download do CakePHP: http://cakephp.org (baixe a última versão estável);

Descompactar o framework dentro da raiz do servidor web;

Testar o acesso ao servidor: http://localhost

Resolver as pendências citadas pelo framework:

Permissão de escrita em /app/tmp;

Alterar hash de segurança Security.salt;

Configurar banco de dados;

Banco de DadosBanco de Dados

O SQL para nosso banco é:O SQL para nosso banco é:

CREATE DATABASE `pagode` ;CREATE DATABASE `pagode` ;

CREATE TABLE IF NOT EXISTS `pagode`.`bills` (CREATE TABLE IF NOT EXISTS `pagode`.`bills` ( `id` int(11) NOT NULL auto_increment,`id` int(11) NOT NULL auto_increment, `amount` float NOT NULL,`amount` float NOT NULL, `description` varchar(64) collate utf8_unicode_ci NOT NULL,`description` varchar(64) collate utf8_unicode_ci NOT NULL, `compensate_at` date NOT NULL,`compensate_at` date NOT NULL, `created` datetime default NULL,`created` datetime default NULL, PRIMARY KEY (`id`)PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;AUTO_INCREMENT=1 ;

Bake – Gerando CódigoBake – Gerando Código

Utilizaremos o Bake para gerar a base de todos os nossos códigos: model, controller e a view;

Vamos adicionar o PHP ao PATH do sistema;

Para acessar o Bake, abra o terminal (prompt de comando no Windows), navegue até a pasta \cake\core\console\

Execute o comando “cake”

Bake – Poupando tempoBake – Poupando tempo

O Bake é capaz de gerar:

Models com validação e associações;

Controllers que utilizam Components e Helpers, e que implementam as ações “CRUD”;

Views para as ações geradas para o item anterior;

Ele também nos ajuda:

A criar um novo projeto com, replicando a árvore de diretórios necessária;

Efetuar as configurações de banco de dados.

Tela do Bake no LinuxTela do Bake no Linux

O que acontece ao acessar um O que acontece ao acessar um endereço?endereço?

ConclusãoConclusão

O CakePHP nos permite dedicar tempo ao que realmente importa: a lógica de nosso sistema;

Ele é compatível com um grande número de servidores (incluindo diferentes versões do PHP e Apache)

Desenvolver com CakePHP é fácil e rápido.

Contato...Contato...

Email: cauan@radig.com.br

Blog: http://geek.cauancabral.net

MSN: cauanc@gmail.com

Gtalk: cauanc@gmail.com

Twitter: cauancabral

IRC @ Freenode: CauanCabral

http://linkedin.com/in/cauancabral