Frontendsessions ab TYPO3 11 nutzen

Ich zeige dir wie du Frontend Sessions so nutzen kannst, wie in den vorherigen TYPO3 Versionen mit nur 2 Methoden.

Das Arbeiten mit Sessions in TYPO3 im Frontend war lange Zeit sehr einfach über die TSFE Eigenschaft: fe_user möglich. 

Damals reichten 3 Methoden aus, um Daten in die Session zu schreiben und zu lesen.

Frontend Sessions in TYPO3 4.5 bis 10

Daten in die Session schreiben

$GLOBALS['TSFE']->fe_user->getKey('ses', $data);
$GLOBALS['TSFE']->storeSessionData();

Daten aus der Session lesen

$GLOBALS['TSFE']->fe_user->setKey('ses', $key, $data);

Diese Umsetzung ist ab TYPO3 11 nicht mehr möglich. 

Jedoch kannst du auf sehr ähnliche Weise ab TYPO3 11 mit den Frontend-Sessions arbeiten. Wir schreiben uns dafür 2 Hilfsmethoden, die du in jeder Klasse so einbinden kannst.

Daten in die Session schreiben

    /**
     * Save data to frontend user session
     * @param string $key
     * @param mixed $value
     * @param ServerRequestInterface $request
     * @param void
     */
    public static function saveToSession($key, $value, ServerRequestInterface $request = null) {
        $request = $request ? $request : $GLOBALS['TYPO3_REQUEST'];
        $frontendUser = $request->getAttribute('frontend.user');

        $frontendUser->setKey('ses', $key, $value);
        $frontendUser->storeSessionData();
    }

Daten aus der Session lesen

    /**
     * Load data from frontend user session
     * @param string $key
     * @param ServerRequestInterface $request
     * @param mixed
     */
    public static function loadFromSession($key, ServerRequestInterface $request = null) {
        $request = $request ? $request : $GLOBALS['TYPO3_REQUEST'];
        $frontendUser = $request->getAttribute('frontend.user');

        return $frontendUser->getKey('ses', $key);
    }

Wir benötigen für den Zugriff aus den Frontendbenutzer bzw. die Hilfsklasse für die Frontendbenutzerauthentifizierung den aktuellen TYPO3 Request. In einem ActionController erhälst du diesen ganz einfach über die Klasseneigenschaft:

saveToSession($key, $value, $this->request);

Für andere Fälle wo du nicht so einfach auf den aktuellen Request kommst, kannst du mit meinen obigen Hilfsfunktionen diesen Parameter einfach leer lassen. Die Hilfsfunktion nutzt als Fallback die $GLOBALS.

Fazit

Du siehst, das Arbeiten mit den Frontendsession ist in TYPO3 11 und höher, fast genauso einfach, wie es vorher war. Leider gibt es dazu sehr wenig bis keine Information im Internet. 

Ich hoffe, dieser kurze Artikel hat dir weitergeholfen.

Du findest zu diesem Thema auch einen YouTube Video auf dem T3 Campus. Das Video wird am 07.07.2023 um 20 Uhr veröffentlicht.

Bereit mehr zu lernen?

Dann komme in meine TYPO3 Onlineschule

Als Mitglied des T3 Campus für TYPO3 Schulungen erhältst du eine einzigartige Lernplattform, um professionelle Webseiten mit TYPO3 zu erstellen. Egal, ob du ein Einsteiger, Umsteiger oder bereits erfahren bist – hier findest du die passenden Lernvideos für dich.

Kevin Chileong Lee

Gründer vom T3 Campus, TYPO3 Experte mit 10+ Jahren Erfahrung, TYPO3 Liebhaber.

Ich helfe dir dabei, deine Projekte in TYPO3 umzusetzen.

Insbesondere für TYPO3 Einsteiger biete ich zahlreiche kostenfreie Tutorials und kostenpflichtige Kurse rund um TYPO3 an.
Damit kannst du in wenigen Tagen auch ohne Vorkenntnisse deine erste TYPO3 Webseite erstellen und Erweiterungen programmieren.

Auf meinem YouTube-Kanal findest du viele praktische Beispiele und Videotutorials als auch allgemein Videos zu diversen TYPO3 Themen.

Neber den TYPO3 Tutorials und Kopiervorlagen, schreibe ich auch Artikel auf meinem Blog über diverse Themen und Fragen, die die meisten TYPO3 Einsteiger, haben.

Wenn du auf dem Laufenden sein möchtest über meine Projekte, dann abonniere den Newsletter.