Provides basic functionality, such as rendering views inside layouts,
automatic model availability, redirection, callbacks, and more.
Controllers should provide a number of 'action' methods. These are public
methods on a controller that are not inherited from Controller.
Each action serves as an endpoint for performing a specific action on a
resource or collection of resources. For example adding or editing a new
object, or listing a set of objects.
You can access request parameters, using $this->request. The request object
contains all the POST, GET and FILES that were part of the request.
After performing the required action, controllers are responsible for
creating a response. This usually takes the form of a generated View, or
possibly a redirection to another URL. In either case $this->response
allows you to manipulate all aspects of the response.
Controllers are created by Dispatcher based on request parameters and
routing. By default controllers and actions use conventional names.
For example /posts/index maps to PostsController::index(). You can re-map
URLs using Router::connect() or RouterBuilder::connect().
### Life cycle callbacks
CakePHP fires a number of life cycle callbacks during each request.
By implementing a method you can receive the related events. The available
callbacks are:
- beforeFilter(Event $event)
Called before each action. This is a good place to do general logic that
applies to all actions.
- beforeRender(Event $event)
Called before the view is rendered.
- beforeRedirect(Event $event, $url, Response $response)
Called before a redirect is done.
- afterFilter(Event $event)
Called after each action is complete and after the view is rendered.