-
Ersatz für $_SESSION
Hallo,
ich möchte eine, von einer (nicht mehr existierenden) Fremdfirma entwickelten, Erweiterung in die Contao-5-Welt mitnehmen. Vieles funktioniert schon, aber die Anwendung speichert für einen mehrstufigen Bestellprozess Daten in $_SESSION.
Contao 5 unterstützt $_SESSION nicht mehr. In UPGRADE.md zu Contao 5 heißt es: $_SESSION has been removed. Use $request->getSession() directly instead.
Kann mir irgendjemand mit einem Codebeispiel helfen?
-
Das Code Beispiel steht ja schon dort. Geht es dir darum, wie du an den Request kommst?
In einem (Fragment) Controller hast du den Request ja bereits. Anderswo bekommst du den Request über den RequestStack Service.
-
Das Modul nutzt keinen Fragmentcontroller. Deshalb ja, wie komme ich mit dem Requeststack Service an den Request und damit an ein Sessionobjekt.
Bitte sehe es mir nach, wenn ich zu kompliziert frage oder falsche Begriffe verwende. Du versteht sicher was ich meine.
-
-
Danke, das hat geholfen. Die Erweiterung funktioniert jetzt auch unter Contao 5.
Eine Frage habe ich noch: Die Erweiterung bedient einen mehrstufigen Bestellprozess, in dem 3 Templates zum Einsatz kommen. Alles wird in einer Klasse von den Methoden compile() und generate() gesteuert.
Ich würde das gerne auf Basis eines FragmentController's realisieren. Kann man in so einem Controller verschiedene Templates verwenden, oder brauche ich für jeden Prozessschritt einen eigenen Controller?
-
Du kannst beliebige Templates rendern lassen. Die Template-Instanz, die du bei der getResponse() bekommst, ist einfach das Standard-Template, auf Basis dessen was du im Service Tag angegeben hast (bzw. wenn du nichts angegeben hast, ergibt sich das aus dem Typ bzw. Klassennamen).