Класс Session
Этот класс является обёрткой для нативных функций PHP сессий. Он предоставляет несколько значений по умолчанию для наиболее распространённой конфигурации сессий через внешние обработчики и помогает использовать сессии в командной строке без предупреждений.
Сессии могут быть созданы по умолчанию с помощью Session::create() или вы можете получить экземпляр новой сессии, просто создав этот класс и передав все необходимые опции.
Когда определённые опции опущены, этот класс возьмёт значения по умолчанию из конфигурационных значений session.* директив в php.ini. Этот класс также изменит эти директивы, когда будут предоставлены значения конфигурации.
Подробное описание методов
__constructsource public
__construct( array $config [] )
Конструктор.
Конфигурация:
- timeout: Время в минутах, в течение которого сессия должна быть валидной.
- cookiePath: Путь URL, для которого устанавливается cookie сессии. Соответствует
session.cookie_pathконфигурации php.ini. По умолчанию — базовый путь приложения. - ini: Список директив php.ini, которые нужно изменить перед началом сессии.
- handler: Массив, содержащий как минимум
classключ. Используется в качестве движка сессий для сохранения данных. Остальные ключи массива будут переданы как массив конфигурации для движка. Вы можете установитьclassключ со уже инициализированным объектом обработчика сессий.
Параметры
- массив
$configнеобязательно [] - Конфигурация для применения к этому объекту сессии
_defaultConfigsource protected static
_defaultConfig( string $name )
Получить одну из предустановленных конфигураций сессий по умолчанию.
Параметры
- строка
$name - Имя конфигурации.
Возвращает
boolean|arraybool|массив
_overwritesource protected
_overwrite( array $old , array $new )
Используется для записи новых данных в _SESSION, так как PHP не позволяет нам напрямую устанавливать переменную _SESSION.
Параметры
- массив
$old - Набор старых переменных => значения
- массив
$new - Новый набор переменных => значение
_timedOutsource protected
_timedOut( )
Возвращает true, если сессия больше недействительна, потому что последний доступ к ней произошел после установленного времени ожидания.
Возвращает
booleanbool
checksource public
check( string|null $name null )
Возвращает true, если заданное имя переменной установлено в сессии.
Параметры
- строка|null
$nameнеобязательно null - Имя переменной для проверки
Возвращает
booleanTrue, если переменная существует
clearsource public
clear( boolean $renew false )
Очищает сессию.
Необязательно также очищает идентификатор сессии и обновляет сессию.
Параметры
- булево
$renewнеобязательно false - Если сессия должна быть обновлена. По умолчанию false.
consumesource public
consume( string $name )
Считывает и удаляет переменную из сессии.
Параметры
- строка
$name - Ключ для чтения и удаления (или путь, как в Hash.extract).
Возвращает
mixedЗначение переменной сессии, null если сессия недоступна, не начата или заданное имя не найдено в сессии.
createsource public static
create( array $sessionConfig [] )
Возвращает новый экземпляр сессии после создания пакета конфигурации для неё. Эта функция позволяет использовать массив опций, который будет использован для конфигурации сессии и используемого обработчика. Самый важный ключ в массиве конфигурации — defaults, который указывает на набор конфигураций для наследования. Возможные значения по умолчанию:
- php: просто использовать сессию, как настроено в php.ini
- cache: Использовать систему кэширования CakePHP в качестве хранилища для сессии. Вам нужно передать
configключ с именем уже настроенного движка кэша. - database: Использовать CakePHP ORM для сохранения и управления сессиями. По умолчанию это требует таблицы в вашей базе данных с именем
sessionsилиmodelключ в конфигурации для указания, какой объект Table использовать. - cake: Использовать файлы для хранения сессий, но позволить CakePHP управлять ими и определять, где их хранить.
Полный список опций:
- defaults: 'php', 'database', 'cache' или 'cake', как описано выше.
- handler: массив, содержащий конфигурацию обработчика
- ini: Список директив php.ini, которые нужно установить перед началом сессии.
- timeout: Время в минутах, в течение которого сессия должна оставаться активной
Параметры
- массив
$sessionConfigнеобязательно [] - Конфигурация сессии.
Возвращает
Cake\Network\Session\Cake\Network\Session
См. также
Cake\Network\Session::__construct()deletesource public
delete( string $name )
Удаляет переменную из сессии.
Параметры
- строка
$name - Переменная сессии для удаления
enginesource public
engine( string|SessionHandlerInterface|null $class null , array $options [] )
Устанавливает экземпляр обработчика сессий для использования в этой сессии. Если в качестве первого аргумента передана строка, она будет обработана как имя класса, а второй аргумент будет передан в качестве первого аргумента в конструктор.
Если в качестве первого аргумента передан экземпляр SessionHandlerInterface, обработчик будет установлен на него.
Если аргументы не переданы, будет возвращён текущий настроенный экземпляр обработчика или null, если он отсутствует.
Параметры
- строка|SessionHandlerInterface|null
$classнеобязательно null - Обработчик сессий для использования
- массив
$optionsнеобязательно [] - опции для передачи в конструктор SessionHandler
Возвращает
SessionHandlerInterface|null\SessionHandlerInterface|null
Выбрасывает
InvalidArgumentException\InvalidArgumentException
idsource public
id( string|null $id null )
Возвращает идентификатор сессии. Вызов этого метода не автоматически запускает сессию. Вам может потребоваться вручную подтвердить запущенную сессию.
Передача идентификатора в него, вы также можете заменить идентификатор сессии, если сессия ещё не начата. Обратите внимание, что в зависимости от обработчика сессий, не все символы разрешены в идентификаторе сессии. Например, обработчик файлов сессий допускает только символы в диапазоне a-z A-Z 0-9 , (запятая) и - (минус).
Параметры
- строка|null
$idнеобязательно null - Идентификатор для замены текущего идентификатора сессии
Возвращает
stringИдентификатор сессии
optionssource public
options( array $options )
Вызывает ini_set для каждого ключа в $options и устанавливает их соответствующее значение в переданном массиве.
Пример:
$session->options(['session.use_cookies' => 1]);
Параметры
- массив
$options - Опции ini для установки.
Выбрасывает
RuntimeExceptionесли какая-либо директива не может быть установлена
readsource public
read( string|null $name null )
Возвращает заданную переменную сессии или все переменные, если параметры не указаны.
Параметры
- string|null
$nameнеобязательно null - Имя переменной сессии (или путь, как в Hash.extract)
Возвращает
string|nullЗначение переменной сессии, null, если сессия недоступна, не запущена или имя не найдено в сессии.
startsource public
start( )
Инициализирует сессию.
Возвращает
booleanTrue, если сессия была запущена
Выбрасывает
RuntimeExceptionесли сессия уже была запущена
startedsource public
started( )
Определяет, была ли уже запущена сессия.
Возвращает
booleanTrue, если сессия запущена.
writesource public
write( string|array $name , string|null $value null )
Записывает значение в заданную переменную сессии.
Параметры
- string|array
$name - Имя переменной
- string|null
$valueнеобязательно null - Значение для записи
Краткое описание свойств
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.Network.Session.html