Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Descubra a importância e o que estas classes podem lhe oferecer no desenvolvimento de sua aplicação.
Helpers
Os helpers (ajudantes, do ingles) servem como auxiliares para as views. Não exclusivamente apenas para a view, você pode utilizá-las em outros lugares de sua aplicação também através de algumas "técnicas".
Você deve informar os helpers que você quer utilizar através do atributo de seu controller Controller::$helpers.
Veja um exemplo:
<?php
class NoticiasController extends AppController {
var $name = 'Noticias';
var $helpers = array('Html', 'Form', 'Session');
}
?>
Agora, nas views de seu controller, você poderia acessar o seu helper através de View::$nome_do_helper.
Veja um exemplo onde utilizamos o HtmlHelper para exibir uma imagem:
<h3>Imagens da pasta webroot/img</h3>
<?php
echo $this->Html->image('parceiro12.jpg');
echo $this->Html->image('avatar_158.png' , array('width' => 125, 'height' => 85));
echo $this->Html->image('gifs/animacao.gif', array('alt' => 'Texto alternativo'));
?>
Veja os helpers disponível por padrão no cakephp em: http://book.cakephp.org/view/100/Core-Helpers
Components
Os components (componentes, do ingles) servem para complemetar seus controllers com funcionalidades.
O AuthComponent oferece recursos para uma fácil autenticação e gestão de usuários e o SessionComponent permite a manipulação de variáveis de sessão de uma maneira mais fácil e intuitiva, por exemplo.
Para utilizar um component, basta inseri-lo no atributo Controller::$components.
Veja um exemplo:
<?php
class NoticiasController extends AppController {
var $name = 'Noticias';
var $components = array('Session');
}
?>
Agora o component estará disponível através de Controller:$nome_do_component.
Veja um exemplo:
<?php
class NoticiasController extends AppController {
var $name = 'Noticias';
var $components = array('Session');
function grava_session(){
$this->Session->write('nome_da_sessao'); // Utilizamos o SessionComponent
}
}
?>
Veja os components disponível por padrão no cakephp em: http://book.cakephp.org/view/170/Core-Components
Behaviors
Behaviors (comportamento, do inglês) servem complementar os seus Models com funcionalidades e alterar a forma como eles agem.
Você pode ter um behavior, por exemplo, que façam o upload de seus arquivos automaticamente. Você poderia fazer isso com um component também, mas é aconselhavél que se utilize um behavior. Então... como saber se eu devo utilizar um Component ou um Behavior?
Simples: Se o problema está relacionados a dados, como é o caso do upload, utilize um behavior, se for de lógica, utilize um component.
Agora você me pergunta: Mas porque ter alternativas para a mesma solução?
Fazendo a escolha certa você ganhará em produtividade. Você fará um sistema para upload mais rapidamente e com melhor produtividade e eficacia utilizando um behavior doque com component.
Ou seja: Um component pode "imitar" um behavior em alguns aspectos (porém não o contrario).
Voltando ao contexto... A duas formas de utilizar um behavior. Utilizando a propriedade Model::$actsAs ou o método Model::attach().
A principal diferença é que com Model::attach() você pode utiliza-lo mais rapidamente no escopo de um método doque com Model::$actsAs.
Veja este exemplo utilizando Model::$actsAs:
<?php
class Noticia extends AppModel {
var $name = 'Noticia';
var $actsAs = array('Containable', 'Tree'); // Os behaviors que utilizaremos
}
?>
Agora utilizando Model::attach()
<?php
class NoticiasController extends AppController {
var $name = 'Noticias';
var $components = array('Session);
function faz_algo(){
if($this->algum_booleano){
$this->Noticia->Behaviors->attach('MeuBehavior'); // Anexamos um behavior baseado em uma condição
}
}
}
?>
Veja os behaviors disponível por padrão no cakephp em: http://book.cakephp.org/view/495/Core-Behaviors
Você pode também adicionar/criar os seus próprios helpers/components/behaviors (este assunto ficará para um próximo tutorial).
Eles devem ficar nas pastas:
app/views/helpers/
app/controllers/components
app/models/behaviors
Você pode conferir os que foram criados pela comunidade em: http://bakery.cakephp.org/
Até a próxima pessoal.
Fonte: http://lucaspelegrino.com
Carregando comentários...