2.1.1 Extensões de Controlador

O Componente (Component) é a classe que ajuda na lógica do controlador. Se você tem a mesma lógica e quer compartilhar entre controladores (ou aplicações), o componente é uma boa saída. Por exemplo, o componente interno EmailComponent cria e envia e-mails em segundo plano. Ao invés de escrever um método em cada controlador que utiliza esta lógica, pode-se criar um componente que empacote esta funcionalidade e seja compartilhado entre os controladores.

Controladores também são equipados com callbacks. Estes callbacks estão disponíveis para que você possa utilizar, apenas se você precisar inserir uma lógica entre operações do núcleo do CakePHP. Os callbacks disponíveis incluem:

  • beforeFilter(), executado antes de qualquer ação do controlador;
  • beforeRender(), executado depois da lógica do controlador, mas antes da visão ser renderizada;
  • afterFilter(), executado depois de todas as lógicas do controlador, incluindo a renderização da visão. Não há diferença entre afterRender() e afterFilter(), exceto que você tenha feito uma chamada manualmente para render() no seu método do controlador e tenha incluído alguma lógica depois dessa chamada.