El routing en Symfony3 es algo muy importante, ya que nos va a permitir tener un sistema de rutas limpias y amigables y nos va a brindar mucha potencia a la hora de desarrollar aplicaciones web con el framework. Veamos como se definen rutas en Symfony3. Se pueden definir rutas globales y rutas dentro de un bundle.
En nuestro caso modificaremos el fichero Src/PruebasBundle/Resources/config/routing.yml
ejemplos_pruebas_homepage: path: /hello/{name} defaults: { _controller: PruebasBundle:Default:index }
Para la acción index, le digo que la ruta va a ser /index y que va a utilizar el método Action del controlador Pruebas del bundle PruebasBundle
index: path: /index defaults: { _controller: PruebasBundle:Pruebas:index }
Lo mismo que con la ruta anterior, pero le paso un parámetro por URL y además le indico que el parámetro “param” tendrá por defecto el valor “valor_por_defecto”
mostrar: path: /mostrar/{param} defaults: { _controller: PruebasBundle:Pruebas:mostrar, param:valor_por_defecto }
En esta ruta tendrá dos parámetros idioma y nombre, ambos tienen un valor por defecto. Le indicamos que esta ruta solo está accesible por GET y que el parámetro idioma puede tener uno de esos tres valores. Si algo no se cumple no nos dejará entrar.
mostrar_avanzado: path: /avanzada/{idioma}/{nombre} defaults: { _controller: PruebasBundle:Pruebas:avanzado, idioma:es, nombre:victor } methods: [GET] requirements: idioma: es|en|de