Ceci est une ancienne révision du document !
Routing
Le composant router de symfony permet de solliciter la méthode d'un contrôleur, en lui passant éventuellement des paramètres, en fonction de l'url demandée.
Les routes peuvent être définies par l'intermédiaire :
- de l'annotation @Route
- en php
- en yaml
- en xml
La méthode la plus souple est l'utilisation d'annotations. Elle nécessite l'installation du composant annotations :
composer require annotations
Création
Création de routes avec l'annotation @Route
namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Routing\Annotation\Route; class BlogController extends Controller { /** * Matches /blog exactly * * @Route("/blog", name="blog_list") */ public function list() { // ... } /** * Matches /blog/* * * @Route("/blog/{slug}", name="blog_show") */ public function show($slug) { // $slug will equal the dynamic part of the URL // e.g. at /blog/yay-routing, then $slug='yay-routing' // ... } }
Dans la console, la commande suivante liste les routes existantes :
php bin/console debug:router
Paramètres de route et requirements
Les paramètres de routes sont passés à l'aide des accolades :
/** * @Route("/blog/{slug}", name="blog_show") */ public function show($slug) { // ... }