Waren

Was sind Sitzungen in Laravel, Konfiguration und Verwendung mit Beispielen

Mit Laravel-Sitzungen können Sie Informationen speichern und zwischen Anforderungen in Ihrer Webanwendung austauschen. 

Sie sind eine einfache Möglichkeit, Daten für den aktuellen Benutzer zu speichern. Dieses Tutorial vermittelt Ihnen die Grundlagen der Arbeit mit Sitzungen in Laravel.

Was ist Laravel-Session

In Laravel ist eine Sitzung eine Möglichkeit, Informationen zu speichern, um Anfragen eines Benutzers korrekt zu bearbeiten. Wenn ein Benutzer eine Laravel-Anwendung startet, wird automatisch eine Sitzung für diesen Benutzer gestartet. Sitzungsdaten werden auf dem Server gespeichert und ein kleines Cookie mit einer eindeutigen Kennung wird an den Browser des Benutzers gesendet, um die Sitzung zu identifizieren.

Sie können Session verwenden, um Daten zu speichern, die Sie über mehrere Seiten oder Anfragen hinweg verwenden möchten. Beispielsweise können Sie die Sitzung zur Benutzerauthentifizierung verwenden oder andere Informationen speichern, die Sie während der Sitzung in Ihrer Anwendung verwenden möchten.

Sitzungskonfiguration in Laravel

Um Sitzungen in Laravel zu verwenden, müssen Sie diese zunächst in der Datei aktivieren config/session.php der Konfiguration. In dieser Datei können sitzungsbezogene Konfigurationsparameter festgelegt werden. Zum Beispiel die Dauer der Sitzung, der zum Speichern der Sitzungsdaten zu verwendende Treiber und der Speicherort für die Sitzungsdaten. 

Die Datei hat die folgenden Konfigurationsoptionen:
  • Fahrer: Gibt den Pre-Session-Treiber andefieinsatzbereit. Laravel unterstützt mehrere Sitzungstreiber: Datei, Cookie, Datenbank, APC, Memcached, Redis, Dynamodb und Array;
  • Lebensdauer: Gibt die Anzahl der Minuten an, in denen die Sitzung als gültig betrachtet werden muss;
  • Expire_on_close: Wenn auf „true“ gesetzt, läuft die Sitzung ab, wenn der Browser des Benutzers geschlossen wird;
  • verschlüsseln: true bedeutet, dass das Framework Sitzungsdaten verschlüsselt, bevor sie gespeichert werden;
  • Dateien: Wenn der Dateisitzungstreiber verwendet wird, gibt diese Option den Dateispeicherort an;
  • Verbindung: Wenn der Datenbanksitzungstreiber verwendet wird, gibt diese Option die zu verwendende Datenbankverbindung an;
  • Tabelle: Wenn der Datenbanksitzungstreiber verwendet wird, gibt diese Option die Datenbanktabelle an, die zum Speichern von Sitzungsdaten verwendet werden soll;
  • Lotterie: Ein Array von Werten, das verwendet wird, um einen Sitzungs-ID-Cookie-Wert zufällig auszuwählen;
  • Plätzchen: Diese Option gibt den Namen des Cookies an, das zum Speichern der Sitzungs-ID verwendet wird. Die Optionen path, domain, secure, http_only und same_site werden verwendet, um die Cookie-Einstellungen für die Sitzung zu konfigurieren.

Unten sehen Sie ein Beispiel für eine Datei sessions.php bei einer Sitzungsdauer von 120 Sekunden, Verwendung von Dateien, die im Verzeichnis gespeichert sind framework/sessions:

<?php

use Illuminate\Support\Str;

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => env('SESSION_CONNECTION', null),
    'table' => 'sessions',
    'store' => env('SESSION_STORE', null),
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE'),
    'http_only' => true,

    'same_site' => 'lax',

];

Sie können die Sitzung auch mithilfe von Umgebungsvariablen in der Datei konfigurieren .env. Um beispielsweise den Datenbanksitzungstreiber zu verwenden und Sitzungsdaten in einer Sitzungstabelle zu speichern, können Sie mit DB vom Typ MySQL die folgenden Umgebungsvariablen festlegen:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions

Einrichtung der Laravel-Sitzung

Es gibt drei Möglichkeiten, mit Sitzungsdaten in Laravel zu arbeiten: 

  • mit derhelper des global session;
  • Verwenden der Session-Fassade;
  • durch eins Request instance

In all diesen Fällen sind die Daten, die Sie in der Sitzung speichern, in nachfolgenden Anfragen desselben Benutzers verfügbar, bis die Sitzung abläuft oder manuell gelöscht wird.

Innovations-Newsletter
Verpassen Sie nicht die wichtigsten Neuigkeiten zum Thema Innovation. Melden Sie sich an, um sie per E-Mail zu erhalten.

Globaler Sitzungshelfer

Verwenden Sie in Laravel die Funktion Global Session Helper Dies ist eine bequeme Möglichkeit, auf die vom Framework bereitgestellten Sitzungsdienste zuzugreifen. Es ermöglicht Ihnen, Daten aus der Sitzung in Ihrer Anwendung zu speichern und abzurufen. Hier ist ein Beispiel für die Verwendung von session helper:

// Store data in the session
session(['key' => 'value']);

// Retrieve data from the session
$value = session('key');

// Remove data from the session
session()->forget('key');

// Clearing the Entire Session
session()->flush();

Sie können auch einen Vorwert übergebendefinite als zweites Argument der Funktion session, die zurückgegeben wird, wenn der angegebene Schlüssel in der Sitzung nicht gefunden wird:

$value = session('key', 'default');

Instanz von Session Request

In Laravel bezieht sich eine Sitzungsanforderungsinstanz auf ein Objekt, das eine HTTP-Anforderung darstellt und Informationen über die Anforderung enthält, wie z. B. die Anforderungsmethode (GET, POST, PUT usw.), die Anforderungs-URL, die Header der Anforderung und den Anforderungstext . Es enthält auch verschiedene Methoden, die verwendet werden können, um diese Informationen abzurufen und zu manipulieren.

Normalerweise greifen Sie auf die Instanz von zu Session Request durch die Variable $request in einer Laravel-Anwendung. Auf eine Sitzung kann beispielsweise über eine Anforderungsinstanz unter Verwendung der Hilfsfunktion zugegriffen werden session().

use Illuminate\Http\Request;

class ExampleController extends Controller
{
   public function example(Request $request)
   {
       // Store data in the session using the put function
       $request->session()->put('key', 'value');

       // Retrieve data from the session using the get function
       $value = $request->session()->get('key');

       // Check if a value exists in the session using the has function:
       if ($request->session()->has('key')) {
           // The key exists in the session.
       }

       // To determine if a value exists in the session, even if its value is null:
       if ($request->session()->exists('users')) {
           // The value exists in the session.
       }

       // Remove data from the session using the forget function
       $request->session()->forget('key');
    }
}

In diesem Beispiel die Variable  $request es ist eine Instanz der Klasse Illuminate\Http\Request, die die aktuelle HTTP-Anforderung darstellt. Die Funktion session Anforderungsinstanz gibt eine Instanz der Klasse zurück Illuminate\Session\Store, die verschiedene Funktionen zum Arbeiten mit der Session bereitstellt.

Ercole Palmeri

Innovations-Newsletter
Verpassen Sie nicht die wichtigsten Neuigkeiten zum Thema Innovation. Melden Sie sich an, um sie per E-Mail zu erhalten.

Aktuelle Artikel

Googles neue künstliche Intelligenz kann DNA, RNA und „alle Moleküle des Lebens“ modellieren

Google DeepMind stellt eine verbesserte Version seines Modells der künstlichen Intelligenz vor. Das neue, verbesserte Modell bietet nicht nur…

9. Mai 2024

Erkundung der modularen Architektur von Laravel

Laravel, bekannt für seine elegante Syntax und leistungsstarken Funktionen, bietet auch eine solide Grundlage für modulare Architektur. Dort…

9. Mai 2024

Cisco Hypershield und Übernahme von Splunk Die neue Ära der Sicherheit beginnt

Cisco und Splunk unterstützen Kunden dabei, ihren Weg zum Security Operations Center (SOC) der Zukunft zu beschleunigen, mit…

8. Mai 2024

Jenseits der wirtschaftlichen Seite: die nicht offensichtlichen Kosten von Ransomware

Ransomware dominiert seit zwei Jahren die Nachrichten. Den meisten Menschen ist durchaus bewusst, dass Angriffe…

6. Mai 2024

Innovativer Eingriff in Augmented Reality mit einem Apple-Viewer in der Poliklinik Catania

In der Poliklinik von Catania wurde eine Augenkorrektur mit dem kommerziellen Viewer Apple Vision Pro durchgeführt.

3. Mai 2024

Die Vorteile von Malvorlagen für Kinder – eine Welt voller Magie für alle Altersgruppen

Die Entwicklung der Feinmotorik durch Malen bereitet Kinder auf komplexere Fähigkeiten wie das Schreiben vor. Färben…

2. Mai 2024

Die Zukunft ist da: Wie die Schifffahrtsindustrie die Weltwirtschaft revolutioniert

Der Marinesektor ist eine echte globale Wirtschaftsmacht, die auf einen 150-Milliarden-Milliarden-Markt zusteuert...

1. Mai 2024

Verlage und OpenAI unterzeichnen Vereinbarungen zur Regulierung des Informationsflusses, der von künstlicher Intelligenz verarbeitet wird

Letzten Montag gab die Financial Times einen Deal mit OpenAI bekannt. FT lizenziert seinen erstklassigen Journalismus…

30. April 2024