CakePHP é um framework escrito em PHP, que possibilita o desenvolvimento de aplicações (PHP) web robustas rapidamente sem perder flexibilidade.
O CakePHP é Open Source e fornece uma arquitetura extensível para desenvolvimento, manutenção, e distribuição de aplicações por meio de patterns conhecidos como ActiveRecord, Association Data Mapping, Front Controller, MVC (Model-View-Controller) e ORM.
Entendendo o MVC
O CakePHP segue o design pattern MVC, que separa sua aplicação em três camadas principais?
1. Model representa os dados da aplicação.
2. View representa o modelo de apresentação dos dados.
3. Controller recebe e encaminha requisições feitas pelo cliente.

1.Cliente (browser) faz requisição para o servidor web;
2.O expedidor (dispacher) verifica a URL e encaminha a requisição para o controller correto.
3.O controller realiza a específica lógica da aplicação.
4.O controller utiliza o model para se ter acesso aos dados da aplicação.
5.Depois os dados o controller os encaminha para view. A view pega os dados e os prepara no formato de apresentação específico para o cliente.
6.Uma vez criado a apresentação, este é retornado para o browser.
Observação:
- A camada de Model representa os dados da aplicação, não é representação de um banco de dados ou entidades da aplicação, ela poderia estar acessando um WebService, por exemplo, para obter os dados da aplicação, isolando assim a camada de apresentação com a camada de negócio.
- Usualmente as views no CakePHP são no formato HTML, mas podem ser PDF, XML, JSON, isso depende mais qual será o propósito de sua utilização.
Estrutura do CakePHP
Alem das classes de Model, View e Controller o CakePHP também possui algumas características como classes de Components, Behaviors e Helpers que auxiliam o desenvolvimento.
Controller – são equipados com callbacks, que possibilita inserir operações no núcleo do CakePHP;
Component – compartilha a lógica entre controllers;
Helper – compartilha a lógica entre as views;
Behaviors – adiciona funcionalidade entre models;
DataSources – abstrações que permitem os models manipularem diferentes tipos de dados consistente;
Convenções
O CakePHP possui já um estilo de programação que pode ser acompanhado em book.cakephp.org
Segue uma lista básica de estilo:
| nomes de arquivo | devem ser sublinhados; |
| nome de classes | devem ser CamelCase; |
| nome de controller | devem estar no plural e ser CamelCase; |
| deve ter uma função chamada índex(); | |
| colocando um sublinhado na frente da função ela será disponível somente para uso interno, não ficando disponível para web por meio do dispatcher. | |
| nome de models | devem ser no singular e ser CamelCase; |
| nome de URL | o nome dos controller devem ser no plural e lowerCamelCase, porem curtos. Exemplo: RedCarsController ficaria redCars; |
Referências
The Official CakePHP website
The Cookbook
Wikipedia
Até mais
