Symfony2 FrameworkBundle: TemplateController y RedirectController

El FrameworkBundle es el bundle que contiene la mayoría de funcionalidad base del framework Symfony2, es el que se encarga de integrar todos los componentes y crear sus servicios. Este bundle proporciona entre otras cosas la clase Controller de la que normalmente se hereda cuando trabajamos con controllers y también las clases  TemplateController y RedirectController que nos facilitan la tarea de crear acciones vacías o redirecciones.

TemplateController

Es muy común tener páginas estáticas que no necesitan realizar ninguna lógica, quedando las acciones así (en el caso de usar anotaciones):

Para estos casos se puede usar la acción templateAction de TemplateController y declarar la ruta directamente en el routing.yml, en nuestro caso vamos a crear un fichero static_routing.yml:

Y lo incluimos en el principal:

Además en Symfony 2.2 podemos configurar los parámetros de la caché.

RedirectController

Cuando rehaces una aplicación es posible que por el camino se queden rutas que ya no convienen o que quieres que te redirijan a una página específica o a una url externa, para eso FrameworkBundle nos proporciona RedirectController que permite hacer redirecciones desde la declaración de la ruta sin tener que pasar por nuestra acción.

redirectAction

Esta acción nos permitirá redirigir a otra ruta interna.

Aquí se pueden ver varios ejemplos, en el primero las llamadas a /old_examples será redirigidas a la ruta examples. El parámetro permanent indica que sí es true el código HTTP que se devolverá será 301 (Moved Permanently), si es false el código será 302 (Found). En los otros ejemplos vemos que es posible pasar parámetros e indicarlos explicitamente.

urlRedirectAction

Esta acción permite redirigir a una ruta externa.

Esta acción recibe una variable path que debe contener la URL o ruta absoluta a redireccionar además de otros parámetros.