Spec-Zone.ru › Yii 2.0

Класс yii\web\DbSession

Все классы | Свойства | Методы
Наследование yii\web\DbSession » 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/blob/master/framework/web/DbSession.php

DbSession расширяет yii\web\Session, используя базу данных в качестве хранилища данных сессии.

По умолчанию DbSession хранит данные сессии в таблице базы данных с именем 'session'. Эта таблица должна быть предварительно создана. Имя таблицы можно изменить, установив $sessionTable.

Следующий пример демонстрирует, как настроить приложение для использования DbSession: Добавьте следующее в конфигурацию вашего приложения под components:

'session' => [
    'class' => 'yii\web\DbSession',
    // 'db' => 'mydb',
    // 'sessionTable' => 'my_session',
]

DbSession расширяет yii\web\MultiFieldSession, поэтому позволяет сохранять дополнительные поля в таблице $sessionTable. Для получения дополнительной информации обратитесь к yii\web\MultiFieldSession.

Публичные свойства

Свойство Тип Описание Определено в
$allFlashes массив Сообщения всплывающих подсказок (ключ => сообщение или ключ => [сообщение1, сообщение2]). yii\web\Session
$behaviors yii\base\Behavior[] Список присоединенных к этому компоненту поведений yii\base\Component
$cookieParams массив Параметры cookie сессии. yii\web\Session
$count целое число Количество переменных сессии yii\web\Session
$db yii\db\Connection|массив|строка Объект подключения к базе данных или идентификатор компонента приложения подключения к базе данных. yii\web\DbSession
$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
$sessionTable строка Имя таблицы базы данных, хранящей данные сессии. yii\web\DbSession
$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\web\DbSession
detachBehavior() Открепляет поведение от компонента. yii\base\Component
detachBehaviors() Открепляет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. yii\base\Component
gcSession() Обработчик GC (уборки мусора) сессии. yii\web\DbSession
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() Возвращает значение, указывающее, должны ли использоваться куки для хранения идентификаторов сессии. 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() Инициализирует компонент DbSession. yii\web\DbSession
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\web\DbSession
regenerateID() Обновляет текущий идентификатор сессии новым сгенерированным. yii\web\DbSession
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\web\DbSession

Защищённые методы

Метод Описание Определено
composeFields() Составляет набор полей хранения для записи сессии. yii\web\MultiFieldSession
extractData() Извлекает данные сессии из набора полей хранения. yii\web\MultiFieldSession
registerSessionHandler() Регистрирует обработчик сессии. yii\web\Session
updateFlashCounters() Обновляет счётчики для сообщений всплывающих уведомлений и удаляет устаревшие сообщения всплывающих уведомлений. yii\web\Session

Подробности свойств

$db общедоступное свойство

Объект подключения к базе данных или идентификатор компонента приложения для подключения к базе данных. После создания объекта DbSession, если вы хотите изменить это свойство, вы должны назначить его только объектом подключения к базе данных. Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.

public yii\db\Connection|array|string $db = 'db'

$sessionTable общедоступное свойство

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

CREATE TABLE session
(
    id CHAR(40) NOT NULL PRIMARY KEY,
    expire INTEGER,
    data BLOB
)

где 'BLOB' относится к типу BLOB вашего предпочитаемого СУБД. Ниже приведены типы BLOB, которые можно использовать для некоторых популярных СУБД:

  • MySQL: LONGBLOB
  • PostgreSQL: BYTEA
  • MSSQL: BLOB

При использовании DbSession на сервере производства, рекомендуется создать индекс базы данных для столбца 'expire' в таблице сессии для повышения производительности.

Обратите внимание, что в соответствии с настройкой php.ini session.hash_function, вам может потребоваться настроить длину столбца id. Например, если session.hash_function=sha256, вы должны использовать длину 64 вместо 40.

public string $sessionTable = '{{%session}}'

Подробности методов

destroySession() общедоступный метод

Обработчик уничтожения сессии.

public boolean destroySession ( $id )
$id string

Идентификатор сессии

return boolean

Успешно ли уничтожена сессия

gcSession() общедоступный метод

Обработчик GC (уборки мусора) сессии.

public boolean gcSession ( $maxLifetime )
$maxLifetime integer

Количество секунд после которого данные будут считаться 'мусором' и очищены.

return boolean

Успешно ли проведена уборка мусора сессии

init() общедоступный метод

Инициализирует компонент DbSession.

Этот метод инициализирует свойство $db, чтобы убедиться, что оно ссылается на действительное подключение к базе данных.

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-web-dbsession.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API