Helper-Klasse für Symfony Requests

Immer wieder stoße ich bei meinen Projekten auf ein klassisches Problem: Wenn ein Nutzer von einer externen Domain kommt soll etwas passieren. Oder wenn er sich auf der lokalen Domain durchklickt. Für alle Symfony-Framework-Nutzer habe ich heute eine Helper-Klasse zur Verfügung gestellt.

Um herauszufinden, ob ein Nutzer von einer externen Domain kommt, muss der Entwickler den Referrer auswerten, indem der Referer aus dem Header dem HTTP_Host vom Server verglichen wird. Programmatisch sieht das so aus:

public static function isInternalReferrer(Request $request)
{
    return 0 < strpos($request->headers->get('referer'), $request->server->get('HTTP_HOST'));
}

Eine weitere Anforderung die ich gelegentlich habe ist, vom Referrer den Path zu erhalten:

public static function getReferrerPath(Request $request)
{
    $referrer = $request->headers->get('referer');
    $origin = $request->server->get('HTTP_HOST');
    $baseUrl = $request->getBaseUrl();

    return self::stripBaseUrl($referrer, $origin . $baseUrl);
}

Diese entfernt von einem Referrer die lokale Domain und gibt den entsprechenden Pfad zurück.

Diesen Helper habe ich auf Github unter https://github.com/fadoe/symfony-referrer-helper bzw. auf Packagist https://packagist.org/packages/fadoe/symfony-referrer-helper zur Verfügung gestellt. Ich werde die Dokumentation erweitern und bald eine Version 1.0.0 veröffentlichen. Fehler können gern im Issue-Tracker von Github hinterlassen werden.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.