Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucaswxp

[Resolvido] [TUTORIAL] que são ers, Components e Behaviors e como util

Recommended Posts

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.