2.1.1 Controller Extensies

Een Component is een klasse die de controller logica ondersteunt. Als u bepaalde logica wilt delen met verschillende controllers controllers (of applicaties), dan is een component meestal een goede oplossing. Bijvoorbeeld met het EmailComponent in de core, is het maken en versturen van emails een fluitje van een cent. In plaats van een controller methode die deze logica uitvoert voor een enkele controller te schrijven, kun je deze logica bundelen zodat deze gedeeld kan worden.

Controllers zijn ook voorzien van callbacks. Deze callbacks zijn door u te gebruiken, voor het geval dat u bepaalde logica wilt invoegen in CakePHP’s core uitvoeringen. Beschikbare Callbacks zijn:

  • beforeFilter(), deze wordt uitgevoerd voor alle logische controller acties
  • beforeRender(), deze wordt uitgevoerd na alle controller logica, maar voordat de view gerendered wordt
  • afterFilter(), deze wordt uitgevoerd na alle controller logica, inclusief de view rendering. Het kan zijn dat er geen verschil is tussen afterRender() en afterFilter() tenzij u handmatig een render() aanroep in uw controlleractie hebt gemaakt en nog enige logica hebt toevoegd na die aanroep.