Абстрактный класс 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