Chapitre 30. Zend_Session

Table des matières

30.1. Introduction
30.2. Basic Usage
30.2.1. Tutoriel d'exemples
30.2.2. Enumérer les espaces de nommage de session
30.2.3. Accesseurs pour les espaces de nommage de session
30.3. Advanced Usage
30.3.1. Starting a Session
30.3.2. Locking Session Namespaces
30.3.3. Namespace Expiration
30.3.4. Session Encapsulation and Controllers
30.3.5. Limiting Instances of Zend_Session_Namespace to One Per Namespace
30.3.6. Working with Arrays in Namespaces
30.3.7. Using Sessions with Authentication
30.3.8. Using Sessions with Unit Tests
30.4. Global Session Management
30.4.1. Zend_Session::setOptions()
30.4.2. Options
30.4.3. Errors
30.4.4. regenerateId()
30.4.5. rememberMe(integer $seconds)
30.4.6. forgetMe()
30.4.7. sessionExists()
30.4.8. destroy(bool $remove_cookie = true, bool $readonly = true)
30.4.9. stop()
30.4.10. writeClose($readonly = true)
30.4.11. expireSessionCookie()
30.4.12. setSaveHandler(Zend_Session_SaveHandler_Interface $interface)
30.4.13. namespaceIsset($namespace)
30.4.14. namespaceUnset($namespace)
30.4.15. namespaceGet($namespace)
30.4.16. getIterator()
30.5. Théorie

30.1. Introduction

Voir la version la plus récente de ce document. En outre, l'équipe Auth du Zend Framework apprécie considérablement votre feedback et vos contributions sur notre liste email : fw-auth@lists.zend.com.

Avec les applications Web écrit en PHP, une session représente un raccordement logique entre le côté serveur, des données persistantes et un client particulier (par exemple navigateur web). Zend_Session aide à contrôler et préserver les données de session, un complément logique des données de type cookie, en cas de demande de page multiples par le même client. À la différence des données de cookie, les données de session ne sont pas stockées du côté client, et elles sont seulement partagées avec le client quand le code source du côté serveur rend volontairement disponible les données par l'intermédiaire d'une réponse à une demande du client. Les données de session se rapportent aux données du côté serveur stockées dans $_SESSION[], contrôlées par Zend_Session, et individuellement manipulées par des objets Zend_Session_Namespace. Les espaces de noms permettent d'accéder aux données de session en utilisant les espaces de noms classiques implémentés logiquement en tant que groupes nommés de tableaux associatifs, indexés par des chaînes (semblables aux tableaux normals de PHP).

Zend_Session_Namespace crée des instances d'objets d'accès pour les sous-parties nommées de $_SESSION[]. Le composant de Zend_Session encapsule l'extension session de PHP existante avec une interface d'administration et de gestion, afin de fournir une API à Zend_Session_Namespace pour les espaces de noms de session persistants. Zend_Session_Namespace fournit une interface normalisée et orientée objet pour travailler en espaces de noms persistants à l'intérieur du mécanisme standard des sessions de PHP. Le support existe pour les espaces de noms anonymes et les espaces de nom de session "reconnus". Zend_Auth, le composant d'authentification du Zend Framework emploie Zend_Session_Namespace pour stocker les informations liées aux utilisateurs authentifiés dans l'espace de nom "Zend_Auth". Puisque Zend_Session emploie les fonctions normales de l'extension session de PHP, tous les options et réglages familiers de configuration s'appliquent (voir http://www.php.net/session), avec en bonus la facilité d'accès par une interface orientée objet fournissant les meilleures pratiques et une intégration sans heurt dans le Zend Framework. Ainsi, un id standard de session PHP, stocké soit dans un cookie côté client ou incorporé dans l'URL, maintient l'association entre un client et des données de session.

La fonction de gestion de session session_set_save_handler ne résout pas le problème de maintenir cette association, quand un client peut se relier à un serveur dans un faisceau des serveurs, puisque des données de session sont sauvées sur le serveur local seulement. Une liste additionnelle de gestionnaire de session sera fournie, dès que possible. Les membres de la communauté sont encouragés à suggérer et soumettre des gestionnaires de sauvegardes à la liste fw-auth@lists.zend.com. Un gestionnaire de sauvegarde compatible Zend_Db a été signalé à la liste.