Kapitel 21. Zend_Session

Inhaltsverzeichnis

21.1. Einleitung
21.2. Grundlegende Verwendung
21.2.1. Übungs-Beispiele
21.2.2. Schleife über Session-Namespaces
21.2.3. Zurgriffsfunktionen für Session-Namespaces
21.3. Advanced Usage
21.3.1. Starting a Session
21.3.2. Locking Session Namespaces
21.3.3. Session Encapsulation and Controllers
21.3.4. Limiting Instances of Zend_Session to One Per Namespace
21.4. Global Session Management
21.4.1. setOptions()
21.4.2. Options
21.4.3. regenerateId()
21.4.4. rememberMe(integer $seconds)
21.4.5. forgetMe()
21.4.6. sessionExists()
21.4.7. destroy(bool $remove_cookie = true, bool $readonly = true)
21.4.8. stop()
21.4.9. writeClose($readonly = true)
21.4.10. expireSessionCookie()
21.4.11. setSaveHandler(Zend_Session_SaveHandler_Interface $interface)
21.4.12. getInstance($instanceMustExist = false)
21.4.13. namespaceIsset($namespace, $name = null)
21.4.14. namespaceUnset($namespace, $name = null)
21.4.15. namespaceSet($namespace, $name, $value)
21.4.16. namespaceGet($namespace, $name = null)
21.4.17. getIterator()
21.5. Theory

21.1. Einleitung

Siehe die aktuellste veröffentlichte Version dieses Dokuments . Das Zend-Framework-Auth-Team freut sich außerdem über jegliches Feedback und Beiträge auf der Mailing-Liste: fw-auth@lists.zend.com

Bei einer in PHP geschriebenen Web-Applikation steht eine Session für eine logische Eins-Zu-Eins-Verbindung zwischen auf dem Server beständig gehaltenen Daten und einem bestimmten Client (zum Beispiel einem Web-Browser). Zend_Session hilft beim Verwalten und Aufbewahren von Session-Daten, der logischen Ergänzung zu Cookie-Daten, über mehrere Seitenaufrufe eines Clients hinweg. Anders als die in Cookies gespeicherten Daten werden die Session-Daten nicht client-seitig gespeichert und stehen dem Client nur zur Verfügung, wenn das server-seitige Script die Daten durch eine Antwort auf eine Anfrage des Clients verfügbar macht. Im Umfeld der Zend_Session-Komponente und in dieser Dokumentation steht der Begriff Session-Daten für server-seitige Daten, die durch Zend_Session verwaltet werden.

Die Zend_Session-Komponente ist ein Wrapper für das bestehende PHP ext/session, der eine standardisierte, objektorientierte Schnittstelle für den Umgang mit anonymen und authentifizierten Sessions zur Verfügung stellt. Zend_Auth, die Authentifizierungs-Komponente des Zend Frameworks, verwendet Zend_Session, um einige Informationen im Zusammenhang mit Login-Sessions (authentifizierten Sessions) zu speichern. Da Zend_Session intern die normalen Session-Funktionen von PHP verwendet, sind alle regulären Konfigurations-Optionen und -Einstellungen nutzbar (siehe http://www.php.net/session ). Eine Session-Id, entweder in einem Cookie oder den URLs gespeichert, hält also die Verbindung zwischen einem Client und bestehenden Session-Daten aufrecht.

Der standardmäßig vorhandene ext/session save handler löst nicht das Problem, diese Verbindung in Szenarien aufrecht zu erhalten, in denen ein Client sich mit einem beliebigen Server eines Server-Clusters verbinden kann, da die bestehenden Session-Daten nur lokal auf einem Server gespeichert werden. Eine Liste zusätzlicher, geeigneter Speicher-Module wird zur Verfügung gestellt werden wenn diese verfügbar sind.