En Symfony, la capa del controlador esta dividida en dos partes: el controlador frontal, que es el único punto de entrada a la aplicación para un entorno dado, y las acciones, que contienen la lógia de las páginas. Una acción puede elegir la forma en la que se ejecuta su vista, devolviendo un valor correspondiente a una de las constantes de la clase sfView. Dentro de una acción, se pueden manipular los diferentes elementos del contexto, incluidos el objeto de la petición (sfRequest) y el objeto de la sesión del usuario actual (sfUser).

Combinando el poder del objeto de sesión, el objeto acción y las configuraciones de seguridad proporcionan sistema de seguridad completo, con restricciones de acceso y credenciales. Y si los métodos preExecute() y postExecute() se diseñan para la reutilización de código dentro de un módulo, los filtros permiten la misma reutilización para toda la aplicación ejecutando código del controlador para cada petición.