2.1.1 Extensiones de los Controladores

Un componente es una clase que ayuda en la lógica del controlador. Si tiene alguna lógica que desea compartir entre controladores (o aplicaciones), un componente suele ser una buena elección. A modo de ejemplo, la clase del núcleo EmailComponent, hace que la creación y envío de mensajes de correo electrónico sea tan sencillo como chasquear los dedos. En lugar de escribir un método en un controlador que realize esta lógica, puede empaquetarla en un componente para que pueda ser compartida.

Los Controladores también están equipados con callbacks. Estas llamadas se encuentran disponibles para su uso, sólo en caso de que necesite insertar alguna lógica entre las operaciones fundamentales de CakePHP. Las Callbacks disponibles incluyen:

  • beforeFilter(), ejecutada antes de cualquier acción del controlador
  • beforeRender(), ejecutada después de la lógica del controlador, pero antes de la vista se renderize
  • afterFilter(), ejecutada después de toda la lógica del controlador, incluido el renderizado de la vista. No hay diferencia entre afterRender() y afterFilter() a menos que haya llamado a render() en su controlador y haya incluido alguna lógica después de esa llamada.