In symfony, the controller layer, which contains the code linking the business logic and the presentation, is split into several components that you use for different purposes:
The front controller is the unique entry point to the application. It loads the configuration and determines the action to execute.
Actions contain the applicative logic. They check the integrity of the request and prepare the data needed by the presentation layer.
The request, response, and session objects give access to the request parameters, the response headers, and the persistent user data. They are used very often in the controller layer.
Filters are portions of code executed for every request, before or after the action. For example, ...