TigerZF
🌐Español

Capítulo 65. Zend_Session

65.1. Introducción

El equipo de Zend Framework Auth agradece enormemente sus comentarios y contribuciones en nuestra lista de correo: fw-auth@lists.zend.com

En las aplicaciones web escritas usando PHP, una sesión representa una conexión lógica, uno a uno, entre datos de estado persistentes del lado del servidor y un cliente de agente de usuario particular (por ejemplo, un navegador web). Zend_Session ayuda a gestionar y preservar los datos de sesión, un complemento lógico de los datos de cookies, a través de múltiples peticiones de página del mismo cliente. A diferencia de los datos de cookies, los datos de sesión no se almacenan en el lado del cliente y solo se comparten con el cliente cuando el código fuente del lado del servidor pone voluntariamente los datos a disposición en respuesta a una petición del cliente. A efectos de este componente y esta documentación, el término "datos de sesión" se refiere a los datos del lado del servidor almacenados en $_SESSION, gestionados por Zend_Session, y manipulados individualmente por los objetos accesores de Zend_Session_Namespace. Los espacios de nombres de sesión proporcionan acceso a los datos de sesión usando los clásicos espacios de nombres implementados lógicamente como grupos con nombre de arrays asociativos, indexados por cadenas (similar a los arrays normales de PHP).

Las instancias de Zend_Session_Namespace son objetos accesores para porciones con espacio de nombres de $_SESSION. El componente Zend_Session envuelve la extensión ext/session existente de PHP con una interfaz de administración y gestión, además de proporcionar una API para que Zend_Session_Namespace persista los espacios de nombres de sesión. Zend_Session_Namespace proporciona una interfaz estandarizada y orientada a objetos para trabajar con espacios de nombres persistidos dentro del mecanismo de sesión estándar de PHP. Existe soporte tanto para espacios de nombres de sesión anónimos como autenticados (por ejemplo, de "inicio de sesión"). Zend_Auth, el componente de autenticación de Zend Framework, utiliza Zend_Session_Namespace para almacenar cierta información asociada con usuarios autenticados. Dado que Zend_Session utiliza internamente las funciones normales de ext/session de PHP, se aplican todas las opciones y ajustes de configuración habituales (véase http://www.php.net/session), con bonificaciones como la comodidad de una interfaz orientada a objetos y un comportamiento por defecto que proporciona tanto buenas prácticas como una integración fluida con Zend Framework. Así, un identificador de sesión estándar de PHP, ya sea transmitido mediante cookie o dentro de URLs, mantiene la asociación entre un cliente y los datos de estado de la sesión.

El manejador de guardado de ext/session por defecto no mantiene esta asociación para clústeres de servidores en ciertas condiciones, ya que los datos de sesión se almacenan en el sistema de archivos del servidor que respondió a la petición. Si una petición puede ser procesada por un servidor distinto de aquel en el que se encuentran los datos de sesión, entonces el servidor que responde no tiene acceso a los datos de sesión (si no están disponibles desde un sistema de archivos en red). Se proporcionará una lista de manejadores de guardado adicionales apropiados, cuando estén disponibles. Se anima a los miembros de la comunidad a sugerir y enviar manejadores de guardado a la lista fw-auth@lists.zend.com. Se ha publicado en la lista un manejador de guardado compatible con Zend_Db.