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

Publié le 20/11/2019 • Actualisé 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 🇬🇧 Close

C'est un besoin très courant que de devoir récupérer le referrer ("parrain" littéralement ou URL d'origine) 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. Si vous avez atterri ici parce que vous cherchez comment récupérer le nom de la route de ce referrer, vous devriez jeter un coup d'œil à ce snippet 😉.
[Fun fact] Comme vous pouvez le voir le champ HTTP d'entête referer est mal orthographié.


<?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  Plus sur le web  Snippet aléatoire

  Travaillez avec moi !