em Uncategorized

CakePHP – Indrodução ao framework

O que é CakePHP?

CakePHP é um conjunto de scripts e bibliotecas em PHP, OpenSource visando automatizar ações corriqueiras na vida de um programador como CRUD (Create,Read,Update,Delete) de informações usando o modelo MVC.

Como ele trabalha? 

O CakePHP trabalha usando o modelo MVC e com convenção de nomes, ou seja, dentro de uma estrutura MVC cada seção tem uma forma de nomenclatura que veremos a seguir: 

Banco de dados:

Tabelas:

As tabelas devem ser nomeadas no plural seguindo a pluralização da gramática inglesa. Exemplos: users, pages, usuarios, stories. 

Chaves Primárias:

As chaves primárias devem ser nomeadas com "id". Veremos como alterar o id padrão do CakePHP mais adiante.

Chaves Estrangeiras:

As chaves estrangeiras de outras tabelas devem se chamar TabelaSingular_id. Exemplo: Salas possui N Alunos. Na tabela alunos, além da chave primária "id", teremos uma chave estrangeira "sala_id" que referenciará a sala em que o aluno se encontra.

 

MVC:

Model:

Para cada tabela, o CakePHP necessita de uma Model para gerenciar seu conteúdo e esta deve ser nomeada no singular, ou seja,  para uma tabela usuarios a model terá o nome de Usuario.php.

Controller:

Costuma-se ter uma controller para cada model mas podem haver mais. Elas recebem o nome no plural, no caso, UsuariosController.php

View:

As views, interface que o usuário fará interação (forms, inputs de dados) são organizadas dentro de um diretório com nome da Model no plural, no caso Usuarios, e dentro um arquivo com o nome da função dentro da controller, Usuarios/lista.ctp (referenciando a função lista existente dentro da controller Usuarios)

 

URL e fluxo de renderização:

Situação1: O usuário, ainda não cadastrado em nosso sistema, deseja se cadastrar e acessa a url: http://nossodominio.com.br/users/add

Analisando:

Primeira parte, temos o domínio do nosso site http://nossodominio.com.br/, nada de muito especial. Segunda parte, temos users/add, esse nome remete à seguinte estrutura do CakePHP: 

Model: app/Model/User.php

Controller: app/Controller/UsersController.php com chamada para a function add();

View: app/View/Users/add.ctp

ou seja, assim que o usuário acessar essa url o cake seguirá o fluxo: Carregar Model/User.php e Controller/UsersController.php, chamar a function add() e renderizar a view Users/add.ctp.

 

Abaixo a assinatura do método add dentro da UsersController.php

function add(){

### SomeCode ###

}

 

Situação2: O usuário quer editar o post de id=3 já inserido no banco de dados e acessa a url: 

http://nossodominio.com.br/posts/edit/3

Analisando:

Ele fará a mesma coisa da url de usuários com um diferencial; a função edit dentro da PostsController.php espera um parâmetro que é o id do post. Este id é passado na url após o nome da função. 

Abaixo a assinatura do método edit dentro da PostsController.php

 

function edit($id){

### SomeCode ###

}

Conhecendo o básico, veremos como automatizar geração de código através de um modelo de dados SQL usando a Bakery do Cakephp. 

Até breve!

Escreva um comentário

Comentário