Falarei aqui sobre alguns pontos no desenvolvimento com o CakePHP que exigem um certo conhecimento do mesmo, então, caso você seja um iniciante, recomendo que você leia outros artigos para poder entender primeiro do básico.
Apresentando
As camadas do bolo nos já bem conhecemos, mas cada uma dessas camadas tem seus adereços. Um deles é o Helper (o FormHelper especificamente). Então vejamos a tabela do relacionamento entre essas camadas e seus adereços.
View | Helper |
Controller | Components |
Model | Behavior's e Data Sourcers |
Component
Usamos componentes quando queremos compartilhar funções genéricas entre controladores. Por exemplo, se você estiver pesando em sair copiando e colando funções nos controllers, então sugiro que use um componente.
O Cake traz por padrão alguns componentes muitos importantes, são eles:
- Segurança
- Sessões
- Lista de controle de acessos (ACL)
- E-mails
- Cookies
- Autenticação
- Manipulação de requisições
Alguns desses componentes vem ativos por padrão que é o caso do Sessão(Session), mas podemos habilitá-los das seguintes maneiras.
//habilitar apenas para um controller específico <?php class ControladorController extends AppController{ //habilita o componente email para esse controller $components = array('Email'); } //habilitando para todos os controller's class AppController extends Controller{ //habilita o componente email para todos controller's $components = array('Email'); } ?>
É possivel criarmos nosso próprios componentes, mas isso não vem ao caso agora deixaremos para um post relacionado a criação de helpers e componentes.
Helper
Aqui está uma definição do próprio manual do cake:
“Helpers são componentes para uma apresentação em camadas de sua aplicação. Eles contém apresentações lógicas que podem ser compartilhadas entre views, elements, ou layouts. Neste capítulo mostraremos para você como criar seu próprio helper e o básico do core helpers do CakePHP”
E links para artigos meus nos quais falei sobre helpers.
Princípios do Form Helper do CakePHPRelacionamento entre Models, HtmlHelper e Finalização do CRUD - Introdução ao CakePHP
Em resumo, os Helpers nos ajudam, na camada de View, a criar componentes HTML usando funções em PHP. Isso torna o desenvolvimento mais rápido e organizado.
O CakePHP já traz em seu core Helpers muito importantes, como, por exemplo, O FormHelper e o HtmlHelper ,esses já vêm habilitados para uso. Ele traz, entre outros, o TimeHelper e o NumberHelper que são utilizados para formatar data e números respectivamente. Esses não vêm habilitados. Para habilitar um helper podemos fazer de três formas, são elas:
- No AppController, assim o helper fica disponível para toda a aplicação;
- Em um controlador específico, dessa forma o helper fica disponível para todas as ações do controller;
- Em uma função para que fique visível apenas para a view respectiva.
$this->Helper[] = “Time”;//assim mantém os outros helpers já definidos
Behaviour
Usamos um Behaviour(Comportamento) para separar a lógica do model, ou seja, tirar do model aquilo que não esteja diretamente ligado a ele. Para chamarmos um Behaviour fazemos o seguinte.
//na classe do model $actAs = array(“Comportamento”);
Na Listagem 02 temos a forma mais básica de chamarmos um Behaviour, apartir daí podemos usar os métodos disponibilizados pelo Behaviour.
O CakePHP traz o Behaviour Tree que organiza os relacionamentos em árvore para tornar mais fácil, por exemplo, consultas e exclusões.
Data Sourcers
São conexões com fontes de dados, como o próprio nome já diz. Essas fontes de dados geralmente são os banco de dados, mas também podemos usar serviços da internet, por exemplo, podemos fazer um link com o twitter. Com um DS pronto basta configuramos o arquivo database.php para realizar a conexão e dizermos ao model para usar esse DS, veja.
// em database.php var $twitter = array( 'datasource' => 'twitter', 'login' => 'username', 'password' => 'password', ); //no model que deve usar o DS public $useDbConfig = 'twitter';
Bem fico por aqui, espero que tenham gostado, deixem seus comentários, dúvidas, sugestões e/ou críticas. Obrigado e até a próxima.