Содержание
- 36.1. Введение
- 36.2. Базовое использование
- 36.3. Продвинутое использование
- 36.3.1. Старт сессии
- 36.3.2. Блокировка пространств имен
- 36.3.3. Время жизни пространства имен
- 36.3.4. Инкапсуляция сессий и контроллеры
- 36.3.5. Ограничение количества экземпляров Zend_Session_Namespace до одного на каждое пространство имен
- 36.3.6. Работа с массивами в пространствах имен
- 36.3.7. Использование сессий вместе с аутентификацией
- 36.3.8. Использование сессий с юнит-тестами
- 36.4. Общее управление сессиями
- 36.4.1. Zend_Session::setOptions()
- 36.4.2. Опции
- 36.4.3. regenerateId()
- 36.4.4. rememberMe(integer $seconds)
- 36.4.5. forgetMe()
- 36.4.6. sessionExists()
- 36.4.7. destroy(bool $remove_cookie = true, bool $readonly = true)
- 36.4.8. stop()
- 36.4.9. writeClose($readonly = true)
- 36.4.10. expireSessionCookie()
- 36.4.11. setSaveHandler(Zend_Session_SaveHandler_Interface $interface)
- 36.4.12. namespaceIsset($namespace)
- 36.4.13. namespaceUnset($namespace)
- 36.4.14. namespaceGet($namespace)
- 36.4.15. getIterator()
См. самую последнюю опубликованную версию этого документа. Приветствуются отзывы и предложения в списке рассылки fw-auth@lists.zend.com.
Для веб-приложений, написанных с использованием PHP, сессия (session) представляет собой логическую связь один-к-одному между постоянными данными на стороне сервера и определенным агентом пользователя (т.е. веб-броузером). Zend_Session помогает сохранять и управлять данными сессий, являющимися логическоим дополнением к данным в куках (cookie), между запросами одного и того же клиента. В отличие от данных, сохраняемых в куках, данные сессий не хранятся на клиентской стороне, они становятся доступными клиенту только если код серверной стороны добровольно предоставляет эти данные в ответ на запрос клиента. Пространства имен сессий предоставляют доступ к данным сессий с использованиием классических пространств имен, логически реализованным как именованные группы ассоциативных массивов.
Компонента Zend_Session
является "оберткой" к
расширению ext/session c интерфейсом для администрирования и управления,
а также предоставляет API для Zend_Session_Namespace
.
Zend_Session_Namespace
предоставляет стандартизированный,
объектно-ориентированный интерфейс для работы с пространствами имен,
сохраняемыми через стандартный механизм сессий PHP. Поддерживаются как
анонимные, так и "авторизованные" пространства имен сессий.
Zend_Auth
, компонента ZF для аутентификации, использует
Zend_Session_Namespace
для хранения информации, связанной с
аутентифицироанными пользователями, в пространстве имен "Zend_Auth".
Поскольку внутри себя Zend_Session
использует обычные
PHP-функции, предназначенные для работы со сессиями, то используются
соответствующие опции конфигурации PHP (см.
http://www.php.net/session).
Стандартный идентификатор сессии, сохраненный в куках или встроенный
в URL, поддерживает ассоциацию между клиентом и постоянными данными
сессии.
Используемый по умолчанию механизм хранения данных сессий не решает проблему поддержки ассоциации, если клиент может соединяться с любым сервером в кластере серверов, поскольку постоянные данные сессии сохраняются только на локальном сервере. Список дополнительных подходящих механизмов хранения будет предоставлен позднее. Члены сообщества приветствуют внесение предложений по механизмам хранения в списке рассылки fw-auth@lists.zend.com. Совместимый с Zend_Db механизм хранения уже был предложен в этом списке рассылки.