Signatur
Beschreibung
session_module_name() liest den Namen des derzeit aktiven Session-Speicher-Moduls aus oder setzt ihn auf einen neuen Wert. Das Session-Modul bestimmt, wo und wie PHP die Session-Daten persistiert – typischerweise files (Standard), memcache, redis oder ein benutzerdefiniertes Modul.
Wird kein Parameter übergeben, liefert die Funktion lediglich den Namen des aktuell konfigurierten Moduls zurück. Wird ein Modulname als Argument angegeben, wechselt PHP zum angegebenen Handler und gibt den vorherigen Modulnamen zurück. Das Setzen des Moduls ist nur möglich, bevor session_start() aufgerufen wird.
Alternativ kann das Session-Modul über die php.ini-Direktive session.save_handler konfiguriert werden. session_module_name() ist nützlich, wenn das Modul zur Laufzeit – etwa abhängig von der Umgebung (Entwicklung, Produktion) – dynamisch gewählt werden soll.
Für vollständig eigene Speicher-Logik sollte stattdessen session_set_save_handler() eingesetzt werden, das eine eigene Implementierung des SessionHandlerInterface erlaubt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $module | string | Name des zu setzenden Session-Moduls, z. B. files, memcache oder redis. Wird der Parameter weggelassen, ändert sich das aktive Modul nicht. |
Rückgabewert
false zurückgegeben.Beispiele
Aktuelles Session-Modul auslesen
<?php
// Gibt das in php.ini konfigurierte oder bisher gesetzte Modul aus
$modul = session_module_name();
echo 'Aktives Session-Modul: ' . $modul;
// Typische Ausgabe: files
Session-Modul zur Laufzeit wechseln
<?php
// Vor session_start() das Modul wechseln
$vorherig = session_module_name('redis');
echo 'Vorheriges Modul: ' . $vorherig . PHP_EOL;
echo 'Neues Modul: ' . session_module_name() . PHP_EOL;
// Nun erst die Session starten – Redis wird als Speicher genutzt
ini_set('session.save_path', 'tcp://127.0.0.1:6379');
session_start();
$_SESSION['benutzer'] = 'Maria';
echo 'Session gestartet mit Modul: redis';
Umgebungsabhängiges Session-Modul wählen
<?php
// Abhängig von der Umgebungsvariable das passende Modul wählen
$umgebung = getenv('APP_ENV') ?: 'development';
if ($umgebung === 'production') {
session_module_name('redis');
ini_set('session.save_path', 'tcp://redis-server:6379');
} else {
// Entwicklungsumgebung: Standard-Dateibasierter Handler
session_module_name('files');
}
session_start();
echo 'Verwendetes Session-Modul: ' . session_module_name();
// Wichtig · Fallstricke
Reihenfolge beachten: session_module_name() muss vor session_start() aufgerufen werden, da das Modul nach dem Start einer Session nicht mehr gewechselt werden kann.
Benutzerdefinierte Handler: Wenn ein eigener Session-Handler via session_set_save_handler() registriert wurde, zeigt session_module_name() den Wert user an. Ein erneutes Setzen über session_module_name() würde den benutzerdefinierten Handler überschreiben.
Verfügbare Module: Welche Module installiert und verfügbar sind, hängt von der PHP-Konfiguration und den installierten Erweiterungen ab. Das Angeben eines nicht vorhandenen Modulnamens führt zu einem Fehler.