[Symfony] Récupérer le referer de la requête

Publié le 20/11/2019 • Mis à jour le 20/11/2019

English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧

C'est un besoin très courant que de devoir récupérer le "referer" de la requête courante. Bien sûr, ça peut être fait via l'objet valeur Symfony "request". Mais ça n'est pas si évident que ça quand on ne connait pas l'astuce. Voici le code. Si vous avez atterri ici parce que vous cherchez comment récupérer le nom de la route de ce referer, vous devriez jeter un coup d'œil à ce snippet 😉.


<?php declare(strict_types=1);

namespace App\Controller\Snippet;

use Symfony\Component\HttpFoundation\Request;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal.
 */
trait Snippet57Trait
{
    public function snippet57(Request $request): void
    {
        // If you hit the run button, the referer will be the URL of this snippet.

        echo $request->headers->get('referer'); // That's it! 😁
    }
}

 Exécuter le snippet  Plus sur Stackoverflow