Глава 21. Zend_Session

Содержание

21.1. Введение
21.2. Основы использования
21.2.1. Примеры
21.2.2. Итерация по пространствам имен
21.2.3. Методы доступа для пространств имен
21.3. Advanced Usage
21.3.1. Starting a Session
21.3.2. Limiting Instances of Zend_Session to One Per Namespace
21.3.3. Locking Session Namespaces
21.3.4. Session Encapsulation and Controllers
21.4. Общее управление сессиями
21.4.1. setOptions()
21.4.2. Опции
21.4.3. regenerateId()
21.4.4. rememberMe(integer $seconds)
21.4.5. forgetMe()
21.4.6. sessionExists()
21.4.7. destroy(bool $remove_cookie = true, bool $readonly = true)
21.4.8. stop()
21.4.9. writeClose($readonly = true)
21.4.10. expireSessionCookie()
21.4.11. setSaveHandler(Zend_Session_SaveHandler_Interface $interface)
21.4.12. getInstance($instanceMustExist = false)
21.4.13. namespaceIsset($namespace, $name = null)
21.4.14. namespaceUnset($namespace, $name = null)
21.4.15. namespaceSet($namespace, $name, $value)
21.4.16. namespaceGet($namespace, $name = null)
21.4.17. getIterator()
21.5. Теория

21.1. Введение

См. самую последнюю опубликованную версию этого документа. Группа Zend Framework Auth очень приветствует отзывы и и участие в разработке в списке рассылки fw-auth@lists.zend.com.

Для веб-приложений, написанных с использованием PHP сессия (session) представляет собой логическую связь один-к-одному между серверными постоянными данными и определенным агентом пользователя (т.е. веб-броузером). Zend_Session помогает сохранять и управлять данными сессий, логическое дополнение к данным в куках (cookie), между запросами от одного и того же клиента. В отличие от данных, сохраняемых в куках, данные сессий не хранятся на клиентской стороне, они только предоставляются клиенту когда код серверной стороны делает данными доступными через ответ на запрос клиента.

Компонента Zend_Session является "оберткой" к существующему расширению ext/session для того, чтобы предоставлять стандартизованный, объектно-ориентированный интерфейс для работы с сессиями, включая как анонимные, так и авторизованные сессии. Поскольку Zend_Session внутри себя использует обычные функции PHP для работы со сессиями, то для настройки используются обычные опции конфигурации (см. http://www.php.net/session). Таким образом, идентификатор сессии, сохраненный в куках или URL-ах поддерживает ассоциацию между клиентом и постоянными данными сессии.

Используемый по умолчанию механизм хранения данных сессий не решает проблему поддержки ассоциации, если клиент может соединяться с любым сервером в кластере серверов, поскольку постоянные данные сессии сохраняются только на локальном сервере. Список дополнительных подходящих механизмов хранения будет предоставлен позднее.