Dans ce nouveau chapitre nous allons voir ensemble le fonctionnement du Routing et nous allons créer nos premières pages.
Controller
Pour créer une page on va commencer par créer un Controller. C'est une classe qui va contenir des méthodes permettant de répondre à une requête utilisateur.
Une fois ce controller créé il va falloir indiquer au framework quelle URL correspondra à quelle action. Cela peut se faire de 2 manières.
routes.yaml
Dans le dossier config, on peut éditer le fichier routes.yaml pour enregistrer notre route.
Attribut PHP
Les routes peuvent aussi être définies en utilisant des attributs PHP directement au niveau des méthodes de notre controller.
Objet Request
Maintenant, comment ça se passe si on veut gérer des paramètres dans l'url ? Par exemple ?name=john. Par défaut, ce qu'on ferait dans une application PHP standard, c'est qu'on mettrait un appel à $_GET et on irait récupérer la clef name. Ce n'est pas la bonne manière de faire ça dans le cadre d'une application Symfony. Avec le framework, lorsque j'utilise une fonction, je peux lui injecter un paramètre supplémentaire qui va permettre de récupérer les informations sur la requête. Ce paramètre devra être de type Symfony\Component\HttpFoundation\Request.
Dès lors que l'on veut récupérer des informations sur la requête de l'utilisateur on utilisera cet objet.
On aura l'occasion de revenir sur cet objet Request et ses méthodes plus tard.
URL dynamiques
Maintenant, ce qu'on aimerait bien faire c'est avoir des URLs qui soient plus proches de la réalité. Par exemple, si je me rends sur un blog, souvent les URLs des articles contiennent un slug suivi d'un ID.
Et on aimerait bien faire pareil avec notre Routing, pour cela on va déclarer une nouvelle route qui aura des paramètres mis entre accolades.
Les paramètres sont ensuite accessibles dans l'objet requête.
Mais peuvent aussi être automatiquement injectés en modifiant les paramètres de la fonction.