Spec-Zone.ru › Yii 2.0

Абстрактный класс yii\web\MultiFieldSession

Все классы | Свойства | Методы
Наследование yii\web\MultiFieldSession » yii\web\Session » yii\base\Component » yii\base\Object
Реализует ArrayAccess, Countable, IteratorAggregate, yii\base\Configurable
Подклассы yii\mongodb\Session, yii\web\DbSession
Доступна с версии 2.0.6
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/web/MultiFieldSession.php

MultiFieldSession — базовый класс для реализации хранения сессий с поддержкой многопольного хранения данных.

При многопольном хранении данных сессии могут быть разделены между несколькими полями в записи хранилища. Такое хранилище позволяет сохранять определённые данные сессии в отдельные поля, которые затем могут использоваться для управления сессиями, что не позволяет обычный PHP.

Например, идентификатор аутентифицированного пользователя можно сохранить в отдельном столбце в таблице «session» MySQL, что позволяет запросить все активные сессии для конкретного пользователя или завершить их по желанию.

Настройка записи сессии осуществляется через $writeCallback, чтение — через $readCallback.

При расширении этого класса следует использовать метод composeFields() — при записи данных сессии в хранилище и extractData() — при чтении данных сессии из хранилища.

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

Свойство Тип Описание Определено в
$allFlashes массив Сообщения всплывающей подсказки (ключ => сообщение или ключ => [сообщение1, сообщение2]). yii\web\Session
$behaviors yii\base\Behavior[] Список присоединённых к этому компоненту поведений yii\base\Component
$cookieParams массив Параметры cookie сессии. yii\web\Session
$count целое число Количество переменных сессии yii\web\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
$timeout целое число Количество секунд, по истечении которых данные будут считаться 'мусором' и очищены. yii\web\Session
$useCookies логическое значение|null Значение, указывающее, должны ли использоваться cookie для хранения идентификаторов сессий. yii\web\Session
$useCustomStorage логическое значение Использовать ли пользовательское хранилище. yii\web\MultiFieldSession
$useTransparentSessionID логическое значение Включена ли поддержка прозрачных id сессии или нет, по умолчанию 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\Session
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
gcSession() Обработчик GC (garbage collection) сессии. yii\web\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() Возвращает значение, указывающее, должны ли использоваться куки для хранения идентификаторов сессий. 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() Инициализирует объект. yii\base\Object
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\Session
regenerateID() Обновляет текущий идентификатор сессии новым сгенерированным. yii\web\Session
remove() Удаляет переменную сессии. yii\web\Session
removeAll() Удаляет все переменные сессии. yii\web\Session
removeAllFlashes() Удаляет все сообщения вспышки. yii\web\Session
removeFlash() Удаляет сообщение вспышки. yii\web\Session
set() Добавляет переменную сессии. yii\web\Session
setCookieParams() Устанавливает параметры куки сессии. 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() Устанавливает значение, указывающее, должны ли использоваться куки для хранения идентификаторов сессий. yii\web\Session
setUseTransparentSessionID() yii\web\Session
trigger() Вызывает событие. yii\base\Component
writeSession() Обработчик записи сессии. yii\web\Session

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

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

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

$readCallback публичное свойство

Обратный вызов, который будет вызван во время чтения данных сессии. Подпись обратного вызова должна быть следующей:

function ($fields)

где $fields - набор полей хранения для чтения сессии, а $session - экземпляр этой сессии. Если обратный вызов возвращает массив, он будет объединен с данными сессии.

Например:

function ($fields) {
    return [
        'expireDate' => Yii::$app->formatter->asDate($fields['expire']),
    ];
}
public callable $readCallback = null

$useCustomStorage публичное только для чтения свойство

Использовать ли пользовательское хранилище.

public boolean getUseCustomStorage ( )

$writeCallback публичное свойство

Обратный вызов, который будет вызван во время записи данных сессии. Подпись обратного вызова должна быть следующей:

function ($session)

где $session - экземпляр этой сессии, эта переменная может быть использована для извлечения данных сессии. Обратный вызов должен вернуть фактический набор полей, которые должны быть сохранены в хранилище сессии.

Например:

function ($session) {
    return [
        'user_id' => Yii::$app->user->id,
        'ip' => $_SERVER['REMOTE_ADDR'],
        'is_trusted' => $session->get('is_trusted', false),
    ];
}
public callable $writeCallback = null

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

composeFields() защищенный метод

Составляет набор полей хранения для записи сессии.

protected массив composeFields ( $id, $data )
$id строка

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

$data строка

Данные сессии

return массив

Поля хранения

extractData() защищенный метод

Извлекает данные сессии из набора полей хранения.

protected строка extractData ( $fields )
$fields массив

Поля хранения.

return строка

Данные сессии.

getUseCustomStorage() публичный метод

Возвращает значение, указывающее, использовать ли пользовательское хранилище сессий.

Этот метод переопределяет реализацию родителя и всегда возвращает true.

public boolean getUseCustomStorage ( )
return boolean

Использовать ли пользовательское хранилище.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-web-multifieldsession.html

Spec-Zone.ru

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