Hallo,
ich versuche, eine selbst entwickelte Extension von TYPO3 12 auf 13 anzupassen. Konkret geht es um das Sessionmanagement im Frontend.
Früher hat man über $GLOBALS['TSFE']->fe_user und Funktionen wie getKey(), setKey(), storeSessionData() in die Session geschrieben und daraus gelesen.
Ab Version 13 geht das wohl nur noch über Klassen wie TYPO3\CMS\Core\UserSessionManager und UserSession-Objekte.
Frage: Hat jemand ein funktionierendes Codebeispiel, wie man eine anonyme Session (kein Frontenduser angemeldet) erstellt, darin etwas schreibt und beim nächsten Request wieder liest?
Mein Code, der nicht funktioniert, sieht ungefähr so aus:
`
$this->userSessionManager = UserSessionManager::create('FE');
$this->userSession = $this->userSessionManager->createFromRequestOrAnonymous(
$this->request,
'irgendein_cookiename'
);
$sessionKey = 'xyz' // Beispiel!
$sessionData = $this->userSession->get($sessionKey) ?? [];
`
Schreiben dann mit
$this->userSession->set($sessionKey, $this->sessionData);
$this->userSession = $this->userSessionManager->fixateAnonymousSession($this->userSession);
Das habe ich mir aus den Quelltexten zusammengereimt, aber irgendwas ist falsch oder unvollständig. Beim nächsten Aufruf der Seite bekomme ich nur eine leere UserSession. Unklar ist mir auch das mit dem cookiename.
Wie gesagt, ein Beispiel wär super.
Vielen Dank im Voraus,
Christoph