El enrutamiento en Symfony 3.

En este post se indicará como crear las distintas rutas de la aplicación.

Rutas

Al generar un bundle, se añade automáticamente en ‘app/config/routing.yml’ una ruta hacía ese nuevo bundle. Aunque hay que configurar las rutas a los controladores. Supongamos lo siguiente:

AppBundle / DefaultController / loginAction

Para añadirle una ruta simplemente accedemos a AppBundle/Resources/config/routing.yml y se añade:

default_login:
  path: /login 
  defaults: { _controller: AppBundle:Default:login }
  • default_login: Debe tener un nombre descriptivo, pero funcionará con cualquiera que le pongas.
  • path: Es la URL desde la que se accede, en este caso: localhost:8000/login.
  • defaults: Es la ruta para que la aplicación lo encuentre, es importante escribirlo en el orden adecuado Bundle:Controlador:Método.

Rutas con variables

Por ejemplo vamos a pasarle a una ruta tres variables: idioma, nombre y página.

function loginAction($idioma, $nombre, $page){
  ...
}

Las variables tendrán un contenido por defecto, y el idioma solo podrá ser español, inglés o francés, nombre tendrá que ser una cadena alfabética y página será un entero. Además únicamente se puede llamar por método GET.

default_index:
  path: /index/{lang}/{name}/{page}
  defaults: { _controller: AppBundle:Default:login, lang:es, name:jose, page:0}
  methods: [GET]
  requirements: 
    name: "[a-zA-Z]*"
    page: \d+
    lang: es|en|fr
  • El contenido por defecto se añade en ‘defaults’, sino todas las variables serían obligatorias.
  • En ‘methods’ también es posible añadir [POST].

Comentar