Introdução ao framework CakePHP

O CakePHP é um framework PHP para desenvolvimento de aplicações web que possui uma estrutura extensível para desenvolvimento, manutenção e implantação de aplicativos. Utiliza o padrão de projeto MVC e ORM com os paradigmas das convenções sobre configurações. CakePHP reduz os custos de desenvolvimento e nos ajuda a diminuir o número de linhas de código necessárias no desenvolvimento de uma aplicação.

OBJETIVO

O CakePHP tem como objetivo simplificar o processo de desenvolvimento para a construção de aplicações web, possuindo um núcleo geral para organizar o banco de dados e outros recursos que ajudam a reduzir a codificação. Entretanto, esta abordagem geral da programação web seja em si uma característica importante do CakePHP, o seu conjunto de outros recursos poderosos como validação embutida, listas de controle de acesso (ACLs), sanitização (limpeza) de dados, segurança e componentes de manipulação de sessão e cache de view fazem o CakePHP valer a pena para qualquer desenvolvedor.

 CARACTERÍSTICAS

  • Licença flexível;
  • Compatibilidade com PHP5;
  • Geração de CRUD para interação com banco de dados;
  • Arquitetura MVC;
  • Validação;
  • Templates;
  • Ferramentas que auxiliam gerar JavaScrip, AJAX, Forms HTML, etc
  • Comunidade ativa;
  • Funciona em qualquer subdiretório web, com pouca configuração Apache.

 MVC

CakePHP é baseado no padrão de desenvolvimento Model-View-Controller. A MVC é uma abordagem de Software que separa a lógica da aplicação de sua apresentação. Em pratica, ela permite que nossas aplicações Web contenham o mínimo de script já que a apresentação é separada do código.

  • Model (Modelo): Contém toda a logica da aplicação que não faz parte de uma Visão (View). Isso quer dizer que todas as regras de negócio, validação e acesso a dados estão contidas no Modelo.
  • View (Visão): É a camada de apresentação, a interface que será mostrada para o usuário. Um view contém todo o
  • HTML e lógica necessária para a correta exibição das páginas aos usuários.
  • Controller (Controlador): recebe as requisições de dados e invoca o modelo para apresentar uma resposta para a visão.

Separarmos a aplicação nessas três partes é muito interessante., pois podemos, por exemplo, modificar todo o layout de nossas páginas sem encostarmos no restante da aplicação, modificando apenas as views.

Na imagem a seguir conseguimos visualizar a arquitetura MVC no CakePHP.

Arquitetura MVC no CakePHP

ESTRUTURA DA PASTA PRINCIPAL DO CAKEPHP

Arquivos na pasta APP do CakePHP

Arquivos na pasta Aplication do CakePHP

  • Config: Contém os arquivos de configuração, detalhes da conexão ao banco de dados, bootstrapping, arquivos de configuração do núcleo e outras.
  • Controller: Contém os controladores das nossas aplicações e nossos componentes.
  • Locate: Armazena os arquivos com as strings para internacionalização.
  • Models: Contém os modelos, behaviores datasources da nossa aplicação.
  • Plugins: Contém os pacotes de plug-ins.
  • Tmp: Esta pasta é onde o CakePHP armazena os arquivos temporários. Os dados atuais são armazenados onde tenhamos configurado o CakePHP, mas 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 terceiros deve ser armazenada aqui. Para fazer um acesso rápido é fácil, use a função vendors(). Podemos achar que esta pasta é redundante, já que possuímos uma pasta com o mesmo nome no nível superior da estrutura. Porém, vemos diferenças entre estas duas pastas quando falamos sobre manipulação de múltiplas aplicações e sistemas mais complexos.
  • Views: Os arquivos para apresentação devem ser armazenados nesta pasta, elementos, páginas de erro, ajudantes, layouts e arquivos de visão.
  • Webroot: No modo desenvolvimento, esta pasta deve servir como a pasta raiz da nossa aplicação. Dentro desta pasta são guardados os arquivos públicos, como estilo CSS, JavaScript.

CONFIGURAÇÕES

Mesmo o CakePHP, sendo focado em convenção ao invés de configuração, o CakePHP pode ter seu comportamento alterado através de alguns arquivos de configuração, que se encontram disponíveis na pasta “app/confing”.

Arquivos da pasta app/Config

CONVENÇÕES

O CakePHP privilegia convenções ao invés de configurações. Isso significa que seguindo as convenções estabelecidas, o CakePHP fará muito por nós. Porém não somos obrigados a seguirmos as convenções, mas perderemos muito com isso, pois teremos que fazer algumas coisas que com as convenções, já estariam prontas.

Apesar de levarmos um pouco de tempo para aprendermos as convenções do CakePHP, nós ganharemos tempo em um longo processo: seguindo as convenções, nós ganhamos funcionalidades gratuitamente e evitamos de passarmos madrugadas fazendo manutenção de arquivos de configuração. Convenções também fazem com que o sistema fique uniformemente desenvolvido, permitindo que outros desenvolvedores nos ajudem mais facilmente, já que segue um padrão de trabalho.

Convenções no CakePHP têm sido produzidas por anos de experiências em desenvolvimento web e boas práticas. Apesar da recomendação de usarmos essas convenções enquanto desenvolvemos em CakePHP, é importante sabermos também que muitos desses princípios podem ser facilmente sobrescritos – algo que especialmente acontece quando trabalha-se com sistemas legados.

Instalando e configurando o CAKEPHP