Arbeiten mit Sessions in Laravel
Das Arbeiten mit Sessions in Laravel ist einfachen. Neben dem Speichern und Auslesen von Daten in einer Session zeigen wir auch, wie Du Sessions z.B. in Redis oder in der Datenbank speichern kannst.
Inhalt
Wie funktionieren Sessions in Laravel?
Das wichtigste Element, um Sessions in Laravel zu nutzen, ist die Facade
Session.
Sie bietet alle Funktionen, die man im Umgang mit Sessions benötigt.
Laravel speichert standardmäßig die Session-ID in dem Cookie laravel_session
. Dies lässt sich in der Datei /config/session.php in der Variable cookie
anpassen.
In der gleichen Konfigurationsdatei lassen sich unter anderem auch Lifetime und Verschlüsselung der Cookies einstellen.
Die Daten der Session werden standardmäßig in das Verzeichnis /storage/framework/sessions gespeichert. Wenn die Verschüsselung aktiviert ist, kann man sich die Dateien darin auch einfach mal ansehen.
Daten in die Session schreiben
Die einfachste Möglichkeit Daten in die Session zu schreiben, ist über die Helper-Funktion session
.
Hier kannst Du die zu speichernden Daten einfach als PHP-Array übergeben.
session(['key' => 'value']);
Daten aus der Session auslesen
Auch das Auslesen von Daten aus der Session geht über die session
-Methode:
session('key');
Session in Datenbank auslagern
Um Sessions in der Datenbank zu speichern, muss zunächst die entsprechende Tabelle erstellt werden.
Das geht am besten über die Laravel-Migrations. Führe dazu folgenden Befehl aus,
um eine Migration für die session
-Tabelle zu generieren:
php artisan session:table
Im nächsten Schritt musst du über Artisan die Migrations durchführen:
php artisan migrate
Nun kannst Du in die Datei /config/session.php
gehen und driver
auf database
stellen.
Session in Redis
Um die Performance von Sessions zu verbessern kann man die Daten über Redis auch im Arbeitsspeicher legen. Zunächst einmal müsst Du dazu die Verbindung zwischen Laravel und Redis schaffen. Wie das genau geht erfährst Du hier.
Danach könnt ihr den Wert driver
in der /config/session.php
auf Redis setzen.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project