Depuis la mise à jour 7.4 de Symfony, il est possible de définir l'accès à une route pour plusieurs environnements différents.
Admettons la fonction suivante qui permet de lister des articles :
#[Route('/post/{id}', name: 'post_show', methods: ['GET'])]
public function show(Post $post): Response
{
return $this->render('site/post/show.html.twig', [
'post' => $post,
]);
}
Pour limiter son acccès aux environnements de production et de développement par exemple, il suffit de modifier #[Route] de la manière suivante :
#[Route('/post/{id}', name: 'post_show', methods: ['GET'], env: ['prod', 'dev'])]
public function show(Post $post): Response
{
return $this->render('site/post/show.html.twig', [
'post' => $post,
]);
}
L'ajout de env: ['prod', 'dev'] définit les règles d'accès qui nous intéressent de manière simple. A partir de maintenant, les autres environnements retourneront une erreur en tentant d'accéder à /post/id.
Pour plus d'informations sur les changements liés aux attributs, tout est disponible dans un post de blog sur le site officiel de Symfony.