O
CakePHP é uma framework opensource desenhada em PHP com o objectivo de acelerar o desenvolvimento de aplicações. À 8 meses escrevi um post, entitulado "
Cake Php Framework", a dar conhecimento da sua existência.
No entanto nessa altura a framework não se apresentou de um modo adulto, e não ficando satisfeito com o resultado final, decidi esperar que ela amadurecesse, ora pois bem, esse momento chegou, o
CakePHP nasceu, cresceu e finalmente apresenta-se como uma framework de qualidade aceitável, pronta para ser realmente usada em casos reais.
O padrão M-V-C
O paradigma
M-V-C é o modo de separar uma aplicação em três partes distintas:
Model -
View -
Controller.
No CakePHP:
Modelo - Representa uma tabela/registo de uma base de dados e as suas relações com outras tabelas ou registos.
Vista - Representa todo e qualquer código html, com ou sem código PHP embebido.
Controlador - O controlador trata o pedido do servidor, recebe o input do URL, implementa a lógica de negócio, usa o
Modelo para ler/escrever na base de dados e finalmente envia o resultado para a
Vista.
Entrada -> Processamento -> Saida
Controlador -> Modelo -> Vista
Organização típica de ficheiros
Ao descarregar e descomprimir a framework deparamo-nos com a seguinte organização de ficheiros:
Explicando um a um:
cake: Onde se localizam as livrarias nucleares do cake, um utilizador regular, normalmente não necessita de alterar nada dentro dela.
app: Este directório é onde ficarão todos os ficheiros da aplicação que estamos a desenvolver, torna possível caso, existam updates á livraria nuclear da framework, apenas actualizar o directório cake e manter a estrutura da nossa aplicação fixa. Uma grande vantagem é que nos permite ter várias aplicações, directórios app, ex: app1, app2, app..., usando a mesma livraria partilhada.
vendors: O local onde devem ser mantidas todas as livrarias externas ao cake, esta secção pode ser a mais dificil de entender de toda a estrutura do Cake, no entanto o wiki do cake apresenta um
excelente exemplo do que pode ser um elemento deste directório.
O directório
app irá conter todos os elementos da aplicação a desenvolver, como tal será composto por um grupo maior de subdirectórios:
- /app
- ../config - Contem os ficheiros de configuração para a base de dados, ACL, etc.
- ../controllers - Controladores
- ..../components - Componentes
- ../index.php - Permite colocar o cake com o /app como raíz
- ../models - Modelos
- ../plugins - Zona de Plugins
- ../tmp - Usado para guardar a Cache e os Logs
- ../vendors - Onde devem ser colocadas as libs de terceiros, para a aplicação
- ../views - Zona onde permanecerão as vistas
- ..../elements - Elements, pequenos pedaços de vistas
- ..../errors - As páginas de erro personalizadas
- ..../helpers - Onde devem ser colocados os Helpers
- ..../layouts - Layouts da aplicação
- ..../pages - Páginas estáticas
- ../webroot - A raiz da aplicação
- ..../css
- ..../files
- ..../img
- ..../js
No próximo conteúdo sobre o Cake vou exemplificar passo a passo a criação de uma aplicação simples, usando o cake. Servirá de introdução ao desenvolvimento usando cakePhp.Este post foi baseado em conteúdos encontrados no manual oficial.