Zend_Session
bietet ein internes Interface um alle Zugriffe auf das Singleton $_SESSION
zu kapseln, durch Verwendung von statischen Methoden. Normalerweise sollten Entwickler $_SESSION
nicht direkt aufrufen, wenn Zend_Session oder Zend_Session_Namespace verwendet wird. Trotzdem ist es möglich,
für vorhandenen Code, mit Zend_Session zu koexistieren, solange die Namensräume welche von Zend_Session_Namespace
verwendet werden nicht mit den Schlüsseln, die vom bestehenden Code in $_SESSION
verwendet werden,
übereinstimmen. Zur Zeit werden keine Versuche gemacht problematische Situationen zu entdecken, wo bestehender
Code (oder andere PHP Anwendungen) ungewollt Session Daten untereinander teilen und überlappen.
Deswegen sind Entwickler dazu angehalten den in den anderen Sektionen beschriebenen beste Praxis-Beispielen
zu folgen um Komplikationen zu vermeiden.
Das ganze Management und die Manipulation des globalen Session Managements finden statt, durch Verwendung von statischen "Klassen" Methoden, welche in Zend_Session definiert sind und das komplette Verhalten von Sessions, welche durch Zend_Session_Namespace verwaltet werden, beeinflußt. Die meisten Entwickler werden nicht in Verlegenheit kommen Zend_Session direkt zu verwenden.
Anders als $_SESSION
verteilt Zend_Session_Namespace alle Session Daten logisch in seperate
Namensräume, durch das Speichern der Daten in einem PHP Array und dem Speichern des Array in
$_SESSION
wobei der Namensraum als Schlüssel verwendet wird. Das Erzeugen einer Instanz von
Zend_Session_Namespace gibt ein nicht-eindeutiges "Fenster" an den ausgewählten Namensraum zurück.
Mehrere "Fenster" sind für den gleichen Namensraum möglich, ausserdem ist nur ein Namensraum
möglich für einen durch ein Programm vergebenen Schlüssel (der Name des Namensraums). Diese Instanzen
dienen der Einschränkung der Manipulation von Session Daten für einen definierten Namensraum, der explizit
angegeben wird, wenn die Instanz von Zend_Session_Namespace erstellt wird. Zend_Session Instanzen helfen
deswegen die Sicht zu restriktieren durch Einführung einer lokalen Sicht-Variable (Zend_Session_Namespace
Instanz Objekt) die effektiv einen definierten Session Namensraum in die lokale Sicht importiert.