Zend_Session
fournit une interface interne pour encapsuler l'accès complet au singleton $_SESSION
en utilisant des méthodes statiques. Généralement les développeurs ne devraient pas directement accéder à $_SESSION
, quand il utilise Zend_Session
et Zend_Session_Namespace
. Cependant, il est possible que du code ancien coexiste avec Zend_Session
, si les espaces de noms employés par Zend_Session_Namespace
ne recouvrent pas les clés de $_SESSION
employé par l'ancien code. Actuellement, aucune tentative n'est faite pour détecter des situations conflictuelles où un code ancien (ou une autre application PHP) modifierait involontairement ou chevaucherait les données de session. Les développeurs sont donc invités à suivre les meilleures pratiques décrites dans les autres sections pour éviter des complications.
Toute la gestion et la manipulation des données de session est réalisée en utilisant les méthodes statiques définies dans Zend_Session
qui affectent le comportement global des sessions contrôlées par Zend_Session_Namespace
et les composants liés. La plupart des développeurs n'auront pas besoin d'employer Zend_Session
directement.
Contrairement à $_SESSION
, Zend_Session_Namespace
isole de manière logique toutes les données de session dans les espaces de noms séparés, en stockant des données dans un tableau PHP et en stockant le tableau dans $_SESSION
avec l'espace de noms comme clé. Construire une instance de Zend_Session_Namespace
renvoie une "fenêtre" non-unique sur l'espace de noms choisi. Les "fenêtres" multiples sont possibles vers le même espace de noms, bien qu'il y ait seulement qu'un espace de noms possible pour une clé (le nom de l'espace de noms). Ces instances servent à limiter la manipulation des données d'état de session aux espaces de noms spécifiques, comme explicitement spécifié en créant l'instance de Zend_Session_Namespace
. Les instances de Zend_Session aident donc à limiter la portée en introduisant une variable de portée locale (instance de l'objet Zend_Session_Namespace
) qui importe un espace de noms spécifique dans la portée locale.