SessionManager

PHP bietet bereits ein integriertes Session-Management. Hierzu wird die superglobale Variable $_SESSION zum Session-Handling und weitere Funktionen aus dem Package Session angeboten. Um mit diesen Hilfsmitteln ein transparentes Session-Handling zu betreiben muss jedoch oft Code zur Überprüfung der Session und zur gemeinsamen Nutzung durch mehrere Programm-Teile eingeführt werden. Diese Aufgabe übernimmt im Adventure PHP Framework der SessionManager. Wird in einer Applikation eine Session benötigt, kann diese einfach per
PHP-Code
$sessMgr = new SessionManager('{ApplikationsNamespace}');
initialisiert werden. Dabei ist "{ApplikationsNamespace}" jeweils durch den Namespace der aktuellen Applikation zu ersetzen. Vor der Benutzung der Komponente muss diese mit
PHP-Code
import('core::session','SessionManager');
in die aktuelle Applikation eingebunden werden.

Der SessionManager untergliedert die in PHP global zur Verfügung gestellte Session in unterschiedliche Namespaces, die von unterschiedlichen Applikationen zur gleichen Zeit benutzt werden können. Per
PHP-Code
$sessMgr->saveSessionData('MyParam','MyValue');
lassen sich nach der Initialisierung Daten in der Session speichern. Durch den SessionManager wird zudem sichergestellt, dass die Session immer beim Einsatz der Applikation existent ist. Ein session_start() ist nicht mehr notwendig. Gespeicherte Daten können ganz einfach mit
PHP-Code
echo $sessMgr->loadSessionData('MyParam');
aus der Session mit dem Namespace, mit dem der Session-Manager initialisiert wurde ausgelesen werden. Für einen Logout-Vorgang kann ein Session-Namespace via
PHP-Code
$sessMgr->destroySession();
zurückgesetzt werden. Anschließend liefert ein loadSessionData() null zurück.

Der Aufruf der Methode

PHP-Code
$sessMgr->loadAllSessionData();

liefert ein assoziatives Array mit allen Einträgen des bei der Erstellung des Session-Manager übergebenen Namespaces zur Verfügung. Sofern eine Liste der aktuell registrierten Schlüssel erforderlich ist, kann diese mit

PHP-Code
$sessMgr->getEntryDataKeys();

abgefragt werden.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.