Start · Sprachen · PHP · Referenz · Yaf_Session

Yaf_Session

Klasse

Kapselt den Zugriff auf PHP-Sitzungsdaten (<code>$_SESSION</code>) in Yaf als objektorientierte Singleton-Klasse.

seit PHP 2.0.0 Kategorie: misc

Signatur

class Yaf_Session implements Iterator, ArrayAccess, Countable

Beschreibung

Yaf_Session ist eine Wrapper-Klasse des Yaf-Frameworks, die den Zugriff auf PHP-Sitzungsdaten ($_SESSION) über eine objektorientierte Schnittstelle ermöglicht. Sie implementiert Iterator, ArrayAccess und Countable, sodass Sitzungsdaten sowohl wie ein Array als auch iterierbar verwendet werden können.

Die Klasse folgt dem Singleton-Muster: Es gibt immer nur eine Instanz, die über die statische Methode Yaf_Session::getInstance() abgerufen wird. Dadurch ist der Sitzungszustand applikationsweit konsistent und wird nicht mehrfach initialisiert.

Die Session wird bei Bedarf automatisch gestartet (sofern noch keine aktive Sitzung besteht). Dies erleichtert den Einstieg in die Sitzungsverwaltung innerhalb von Yaf-Applikationen erheblich, ohne dass manuell session_start() aufgerufen werden muss.

Durch die Implementierung von ArrayAccess können Sitzungswerte bequem über die Array-Syntax ($session['key']) gelesen und gesetzt werden. Die Iterator-Implementierung erlaubt das Iterieren über alle Sitzungseinträge in einer foreach-Schleife.

Beispiele

Singleton-Instanz abrufen und Sitzungsdaten lesen/schreiben

<?php
// Yaf_Session-Instanz holen (Session wird bei Bedarf automatisch gestartet)
$session = Yaf_Session::getInstance();

// Wert setzen (Array-Syntax durch ArrayAccess)
$session['user'] = 'Max Mustermann';
$session['role'] = 'admin';

// Wert lesen
echo $session['user']; // Max Mustermann

// Prüfen, ob ein Schlüssel vorhanden ist
if (isset($session['role'])) {
    echo 'Rolle: ' . $session['role'];
}

// Wert löschen
unset($session['role']);

echo PHP_EOL . 'Anzahl Sitzungseinträge: ' . count($session);
Max Mustermann Rolle: admin Anzahl Sitzungseinträge: 1

Über alle Sitzungsdaten iterieren

<?php
$session = Yaf_Session::getInstance();

// Einige Werte setzen
$session['username'] = 'erika';
$session['lang']     = 'de';
$session['theme']    = 'dark';

// Iteration durch alle Sitzungseinträge (Iterator-Interface)
foreach ($session as $key => $value) {
    echo $key . ' => ' . $value . PHP_EOL;
}
username => erika lang => de theme => dark

// Wichtig · Fallstricke

Singleton: Yaf_Session kann nicht direkt instanziiert werden (new Yaf_Session() ist nicht vorgesehen). Verwende immer Yaf_Session::getInstance().

Sicherheit: Sitzungsdaten sollten niemals unvalidierte Benutzereingaben direkt enthalten. Session-Fixation-Angriffe lassen sich durch Aufruf von session_regenerate_id(true) nach einem Login verhindern. Yaf_Session bietet hierfür keine eingebaute Schutzfunktion.

Erweiterung: Die Klasse ist im Yaf-PECL-Modul implementiert und steht nur zur Verfügung, wenn das yaf-Extension geladen ist. Sie ist nicht Teil des PHP-Standardumfangs.

Deprecation: Yaf wird seit einigen Jahren nur noch sporadisch gewartet. Für neue Projekte sollten moderne Frameworks wie Laravel oder Symfony in Betracht gezogen werden.