Класс yii\mongodb\Session
| Наследование | yii\mongodb\Session » yii\web\MultiFieldSession » yii\web\Session » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | ArrayAccess, Countable, IteratorAggregate, yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-mongodb/blob/master/Session.php |
Session расширяет yii\web\Session, используя MongoDB для хранения данных сессии.
По умолчанию Session хранит данные сессии в коллекции с именем 'session' в базе данных по умолчанию. Эту коллекцию лучше предварительно создать с индексированными полями 'id' и 'expire'. Имя коллекции можно изменить, установив $sessionCollection.
Следующий пример показывает, как настроить приложение для использования Session: Добавьте следующее в конфигурацию вашего приложения в разделе components:
'session' => [
'class' => 'yii\mongodb\Session',
// 'db' => 'mymongodb',
// 'sessionCollection' => 'my_session',
]
Session расширяет yii\web\MultiFieldSession, поэтому позволяет сохранять дополнительные поля в $sessionCollection. Подробнее см. yii\web\MultiFieldSession.
Подсказка: для повышения производительности можно использовать индекс TTL MongoDB для удаления устаревших сессий. В этом случае необходимо установить yii\mongodb\Session::$gCProbability на 0.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $allFlashes | массив | Сообщения всплывающих подсказок (ключ => сообщение или ключ => [сообщение1, сообщение2]). | yii\web\Session |
| $behaviors | yii\base\Behavior[] | Список прикрепленных к этому компоненту поведений | yii\base\Component |
| $cookieParams | массив | Параметры cookie сессии. | yii\web\Session |
| $count | целое число | Количество переменных сессии | yii\web\Session |
| $db | yii\mongodb\Connection|массив|строка | Объект подключения к MongoDB или идентификатор компонента приложения MongoDB. | yii\mongodb\Session |
| $flash | строка | Ключ, идентифицирующий сообщение всплывающей подсказки. | yii\web\Session |
| $flashParam | строка | Имя переменной сессии, хранящей данные сообщения всплывающей подсказки. | yii\web\Session |
| $gCProbability | число с плавающей точкой | Вероятность (процент), что процесс GC (сбор мусора) запускается при каждом инициализации сессии, по умолчанию 1 (1% шанс). | yii\web\Session |
| $handler | SessionHandlerInterface|массив | Объект, реализующий SessionHandlerInterface, или конфигурационный массив. | yii\web\Session |
| $hasSessionId | логическое значение | Присутствует ли в текущем запросе идентификатор сессии. | yii\web\Session |
| $id | строка | Текущий идентификатор сессии | yii\web\Session |
| $isActive | логическое значение | Запущена ли сессия | yii\web\Session |
| $iterator | yii\web\SessionIterator | Итератор для обхода переменных сессии. | yii\web\Session |
| $name | строка | Текущее имя сессии | yii\web\Session |
| $readCallback | вызов | Обратный вызов, который будет вызван при чтении данных сессии. | yii\web\MultiFieldSession |
| $savePath | строка | Текущий путь сохранения сессии, по умолчанию '/tmp'. | yii\web\Session |
| $sessionCollection | строка|массив | Имя коллекции MongoDB, хранящей данные сессии. | yii\mongodb\Session |
| $timeout | целое число | Количество секунд, после которых данные будут считаться "мусором" и удалены. | yii\web\Session |
| $useCookies | логическое значение|null | Значение, указывающее, должны ли использоваться cookie для хранения идентификаторов сессии. | yii\web\Session |
| $useCustomStorage | логическое значение | Использовать ли пользовательское хранилище. | yii\web\MultiFieldSession |
| $useTransparentSessionID | логическое значение | Включена ли поддержка прозрачного sid, по умолчанию false. | yii\web\Session |
| $writeCallback | вызов | Обратный вызов, который будет вызван при записи данных сессии. | yii\web\MultiFieldSession |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в null. | yii\base\Component |
| addFlash() | Добавляет сообщение всплывающего окна. | yii\web\Session |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, которые должен демонстрировать этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| close() | Завершает текущую сессию и сохраняет данные сессии. | yii\web\Session |
| closeSession() | Обработчик закрытия сессии. | yii\web\Session |
| count() | Возвращает количество элементов в сессии. | yii\web\Session |
| destroy() | Освобождает все переменные сессии и уничтожает все данные, зарегистрированные в сессии. | yii\web\Session |
| destroySession() | Обработчик уничтожения сессии. | yii\mongodb\Session |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| gcSession() | Обработчик GC (уборки мусора) сессии. | yii\mongodb\Session |
| get() | Возвращает значение переменной сессии по имени переменной сессии. | yii\web\Session |
| getAllFlashes() | Возвращает все сообщения всплывающего окна. | yii\web\Session |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все присоединенные к этому компоненту поведения. | yii\base\Component |
| getCookieParams() | yii\web\Session | |
| getCount() | Возвращает количество элементов в сессии. | yii\web\Session |
| getFlash() | Возвращает сообщение всплывающего окна. | yii\web\Session |
| getGCProbability() | yii\web\Session | |
| getHasSessionId() | Возвращает значение, указывающее, отправил ли текущий запрос идентификатор сессии. | yii\web\Session |
| getId() | Получает идентификатор сессии. | yii\web\Session |
| getIsActive() | yii\web\Session | |
| getIterator() | Возвращает итератор для обхода переменных сессии. | yii\web\Session |
| getName() | Получает имя текущей сессии. | yii\web\Session |
| getSavePath() | Получает текущий путь сохранения сессии. | yii\web\Session |
| getTimeout() | yii\web\Session | |
| getUseCookies() | Возвращает значение, указывающее, должны ли использоваться cookie для хранения идентификаторов сессий. | yii\web\Session |
| getUseCustomStorage() | Возвращает значение, указывающее, использовать ли пользовательское хранилище сессий. | yii\web\MultiFieldSession |
| getUseTransparentSessionID() | yii\web\Session | |
| has() | yii\web\Session | |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчики, прикрепленные к событию с заданным именем. | yii\base\Component |
| hasFlash() | Возвращает значение, указывающее, есть ли сообщения всплывающего окна, связанные с указанным ключом. | yii\web\Session |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует компонент Session. | yii\mongodb\Session |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offsetExists() | Этот метод требуется интерфейсом ArrayAccess. | yii\web\Session |
| offsetGet() | Этот метод требуется интерфейсом ArrayAccess. | yii\web\Session |
| offsetSet() | Этот метод требуется интерфейсом ArrayAccess. | yii\web\Session |
| offsetUnset() | Этот метод требуется интерфейсом ArrayAccess. | yii\web\Session |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| open() | Запускает сеанс. | yii\web\Session |
| openSession() | Обработчик открытия сеанса. | yii\web\Session |
| readSession() | Обработчик чтения сеанса. | yii\mongodb\Session |
| regenerateID() | Обновляет текущий идентификатор сеанса новым сгенерированным. | yii\mongodb\Session |
| remove() | Удаляет переменную сеанса. | yii\web\Session |
| removeAll() | Удаляет все переменные сеанса | yii\web\Session |
| removeAllFlashes() | Удаляет все всплывающие сообщения. | yii\web\Session |
| removeFlash() | Удаляет всплывающее сообщение. | yii\web\Session |
| set() | Добавляет переменную сеанса. | yii\web\Session |
| setCookieParams() | Устанавливает параметры cookie сеанса. | yii\web\Session |
| setFlash() | Устанавливает всплывающее сообщение. | yii\web\Session |
| setGCProbability() | yii\web\Session | |
| setHasSessionId() | Устанавливает значение, указывающее, отправлен ли идентификатор сеанса текущим запросом. | yii\web\Session |
| setId() | Устанавливает идентификатор сеанса. | yii\web\Session |
| setName() | Устанавливает имя текущего сеанса. | yii\web\Session |
| setSavePath() | Устанавливает текущий путь сохранения сеанса. | yii\web\Session |
| setTimeout() | yii\web\Session | |
| setUseCookies() | Устанавливает значение, указывающее, следует ли использовать cookie для хранения идентификаторов сеанса. | yii\web\Session |
| setUseTransparentSessionID() | yii\web\Session | |
| trigger() | Вызывает событие. | yii\base\Component |
| writeSession() | Обработчик записи сеанса. | yii\mongodb\Session |
Защищенные методы
| Метод | Описание | Определен в |
|---|---|---|
| composeFields() | Составляет набор полей хранения для записи сеанса. | yii\web\MultiFieldSession |
| extractData() | Извлекает данные сеанса из набора полей хранения. | yii\web\MultiFieldSession |
| registerSessionHandler() | Регистрирует обработчик сеанса. | yii\web\Session |
| updateFlashCounters() | Обновляет счетчики для всплывающих сообщений и удаляет устаревшие всплывающие сообщения. | yii\web\Session |
Подробное описание свойств
$db общественное свойство
Объект подключения к MongoDB или идентификатор компонента приложения подключения к MongoDB. После создания объекта Session, если вы хотите изменить это свойство, вы должны присвоить ему только объект подключения к MongoDB. Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.
public yii\mongodb\Connection|array|string $db = 'mongodb'
$sessionCollection общественное свойство
Имя коллекции MongoDB, которая хранит данные сеанса. Обратитесь к yii\mongodb\Connection::getCollection() для указания этого параметра. Эту коллекцию лучше предварительно создать с индексированными полями 'id' и 'expire'.
public string|array $sessionCollection = 'session'
Подробное описание методов
destroySession() общественный метод
Обработчик уничтожения сеанса.
Не вызывайте этот метод напрямую.
| public boolean destroySession ( $id ) | ||
|---|---|---|
| $id | string |
Идентификатор сеанса |
| return | boolean |
Успешно ли уничтожен сеанс |
gcSession() общественный метод
Обработчик GC (уборки мусора) сеанса.
Не вызывайте этот метод напрямую.
| public boolean gcSession ( $maxLifetime ) | ||
|---|---|---|
| $maxLifetime | integer |
Количество секунд, по истечении которых данные будут считаться "мусором" и будут удалены. |
| return | boolean |
Успешно ли выполнена уборка мусора сеанса |
init() общественный метод
Инициализирует компонент Session.
Этот метод инициализирует свойство $db, чтобы убедиться, что оно ссылается на действительное подключение к MongoDB.
| public void init ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException |
если $db недействителен. |
readSession() общественный метод
Обработчик чтения сеанса.
Не вызывайте этот метод напрямую.
| public string readSession ( $id ) | ||
|---|---|---|
| $id | string |
Идентификатор сеанса |
| return | string |
Данные сеанса |
regenerateID() общественный метод
Обновляет текущий идентификатор сеанса новым сгенерированным.
Обратитесь к http://php.net/session_regenerate_id для получения дополнительной информации.
| public void regenerateID ( $deleteOldSession = false ) | ||
|---|---|---|
| $deleteOldSession | boolean |
Удалить ли старый связанный файл сеанса. |
writeSession() общественный метод
Обработчик записи сеанса.
Не вызывайте этот метод напрямую.
| public boolean writeSession ( $id, $data ) | ||
|---|---|---|
| $id | string |
Идентификатор сеанса |
| $data | string |
Данные сеанса |
| return | boolean |
Успешна ли запись сеанса |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mongodb-session.html