lucaswxp 22 Denunciar post Postado Fevereiro 16, 2010 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 Compartilhar este post Link para o post Compartilhar em outros sites