Framework CakePHP
O que é Framework: um Framework nada mais é do que um conjunto de funcionalidade compartilhadas por uma família de aplicações, o Framework fornece uma estrutura genérica para se construir uma aplicação deixando para os programadores somente as regras de negócio . Os Frameworks normalmente fornecem funções como validação, tratamento de requisições, persistência de dados etc.
É importante não confundir um framework web com um CMS(Sistema de Gerenciamento de Conteúdo) que é uma aplicação que inclusive pode ser construída com um Framework.
O CakePHP
O CakePHP é um Framework de desenvolvimento rápido web em PHP, suas principais características são:
- Código aberto
- Utiliza a arquitetura MVC
- Possui um robusto sistema de persistência de dados que facilita as operações CRUD
- Utiliza URLs amigáveis(
mod_rewrite
) - Estrutura de diretórios simples e clara
Pode-se fazer o download da ultima versão na página do projeto http://cakephp.org/
Arquitetura MVC
O CakePHP como a maioria dos Frameworks web utiliza a arquitetura MVC que divide a aplicação em três camadas Modelo(Model), Visão(View) e Controle(Controller) para torná-la de mais fácil manutenção permitindo que alterações em uma das camadas causem pouca influencia nas outras.
- Modelo(Model): Representa os dados que a aplicação manipula. Suas regras de validação e persistência.
- Visão(View): É a apresentação dos dados para o usuário, normalmente uma página HTML mas pode gerar outros tipos de documentos como PDF, XML,XLS, etc.
- Controle(Controller): É onde se processa e responde as requisições do usuário e pode invocar alterações no Model.
Exemplo de uma requisição feita ao CakePHP
O cliente(1) faz uma requisição ao Dispatcher(componente responsável por encaminhar requisições) que identifica qual Controller deve ser chamado e repassa a requisição para ele(2).
O controle verifica qual ação deve tomar(regras de negócio), e se necessário utiliza o Model salvando ou lendo dados(3,4) e após passa o controle para o View(5).
O View então trata de formatar a resposta e a envia para o cliente(6).
Exemplo de Requisição ao CakePHP
http://localhost/cake/contatos/infocontato/1
- Controller: contatos
- Método: infocontato
- Paramêtro: 1
Vejamos agora a estrutura de diretórios do CakePHP
Nossa aplicação fica dentro da pasta app
- config: Contém os arquivos de configuração. Detalhes das conexões ao banco de dados, bootstrapping, arquivos de configuração do núcleo e outros devem ser armazenados aqui.
- controllers: Contém os controladores da sua aplicação e seus componentes.
- locale: Guarda os arquivos com as strings para internacionalização.
- models: Contém os modelos da sua aplicação.
- plugins: Contém os pacotes de plugins.
- tmp: Aqui é onde o CakePHP armazena os arquivos temporários. Esta pasta normalmente é usada para guardar a descrição dos modelos, logs e outras informações, como as das sessões.
- vendors: Qualquer classe ou biblioteca de terceiro deve ser armazenada aqui.
- views: Arquivos de apresentação devem vir aqui: elements, páginas de erro, helpers, layouts e arquivos de view.
- webroot: No modo de produção, esta pasta deve servir como a pasta raiz da sua aplicação. Dentro desta pasta são guardados os arquivos públicos, como estilos CSS, imagens e arquivos de JavaScript.
Agora vamos a um vídeo de como montar um cadastro simples utilizando o CakePHP. A tabela no banco de dados que iremos manipular será esta
CREATE TABLE(
Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
telephone VARCHAR(255) NOT NULL,
endereco VARCHAR(255) NOT NULL
);