Класс Session
Этот класс является обёрткой над встроенными функциями PHP для работы с сессиями. Он предоставляет несколько настроек по умолчанию для наиболее распространённых конфигураций сессий через внешние обработчики и помогает использовать сессии в консоли без предупреждений.
Сессии могут быть созданы из настроек по умолчанию используя Session::create(), или вы можете получить экземпляр новой сессии, просто создав этот класс и передав необходимые параметры.
Если конкретные параметры отсутствуют, этот класс будет использовать настройки по умолчанию из значений конфигурации session.* в файле php.ini. Этот класс также будет изменять такие директивы при предоставлении значений конфигурации.
Краткое описание свойств
-
$_engineprotectedЭкземпляр обработчика сессий, используемый как движок для сохранения данных сессии.SessionHandlerInterface|null -
$_isCLIprotectedВыполняется ли эта сессия в консольном окруженииboolean -
$_lifetimeprotectedВремя в секундах, в течение которого сессия будет действительнойinteger -
$_startedprotectedУказывает, была ли сессия уже запущенаboolean
Краткое описание методов
- __construct() publicКонструктор.
- Получение одной из предустановленных конфигураций сессии по умолчанию.
- _hasSession() protectedВозвращает, существует ли сессия
- _overwrite() protectedИспользуется для записи новых данных в _SESSION, так как PHP не позволяет нам непосредственно устанавливать переменную _SESSION.
- _timedOut() protected
Возвращает true, если сессия больше недействительна, потому что последний доступ к ней был после установленного таймаута.
- check() publicВозвращает true, если заданное имя переменной установлено в сессии.
- clear() publicОчищает сессию.
- consume() publicСчитывает и удаляет переменную из сессии.
-
Возвращает новый экземпляр сессии после создания набора конфигураций для неё. Эта функция позволяет использовать массив параметров, который будет использован для настройки сессии и используемого обработчика. Самым важным ключом в массиве конфигурации является
defaults, который указывает набор конфигураций для наследования, возможные значения по умолчанию: - delete() publicУдаляет переменную из сессии.
- destroy() publicМетод для уничтожения недействительных сессий.
- engine() public
Устанавливает экземпляр обработчика сессий для использования в этой сессии. Если для первого аргумента передаётся строка, она будет интерпретирована как имя класса, а второй аргумент будет передан как первый аргумент в конструктор.
- id() public
Возвращает идентификатор сессии. Вызов этого метода не запускает сессию автоматически. Возможно, придётся вручную начать сессию.
- options() public
Вызывает ini_set для каждого ключа в
$optionsи устанавливает их соответствующее значение из переданного массива. - read() publicВозвращает заданную переменную сессии или все переменные, если параметры не заданы.
- renew() publicПерезапускает эту сессию.
- start() publicИнициализирует сессию.
- started() publicОпределяет, была ли сессия уже запущена.
- write() publicЗаписывает значение в заданную переменную сессии.
Подробное описание методов
__construct()source public
__construct( array $config [] )
Конструктор.
Конфигурация:
- timeout: Время в минутах, в течение которого сессия должна быть действительной.
- cookiePath: Путь URL, для которого устанавливается cookie сессии. Соответствует конфигурации
session.cookie_pathв php.ini. По умолчанию – базовый путь приложения. - ini: Список директив php.ini, которые нужно изменить перед началом сессии.
- handler: Массив, содержащий, по крайней мере, ключ
class. Используется как движок сессии для сохранения данных. Остальные ключи массива будут переданы как массив конфигурации для движка. Вы можете установить ключclassна уже созданный экземпляр обработчика сессий.
Параметры
- array
$configoptional [] - Конфигурация для применения к этому объекту сессии
_defaultConfig()source protected static
_defaultConfig( string $name )
Получение одной из предустановленных конфигураций сессии по умолчанию.
Параметры
- string
$name - Имя конфигурации.
Возвращает
boolean|array_overwrite()source protected
_overwrite( array $old , array $new )
Используется для записи новых данных в _SESSION, так как PHP не позволяет нам непосредственно устанавливать переменную _SESSION.
Параметры
- array
$old - Набор старых переменных => значений
- array
$new - Новый набор переменных => значений
_timedOut()source protected
_timedOut( )
Возвращает true, если сессия больше недействительна, потому что последний доступ к ней был после установленного таймаута.
Возвращает
booleancheck()source public
check( string|null $name null )
Возвращает true, если заданное имя переменной установлено в сессии.
Параметры
- string|null
$nameoptional null - Имя переменной для проверки
Возвращает
booleanTrue, если переменная существует
clear()source public
clear( boolean $renew false )
Очищает сессию.
Также необязательно очищает идентификатор сессии и обновляет сессию.
Параметры
- boolean
$renewoptional false - Если сессия должна быть обновлена. По умолчанию false.
consume()source public
consume( string $name )
Считывает и удаляет переменную из сессии.
Параметры
- string
$name - Ключ для чтения и удаления (или путь, передаваемый в Hash.extract).
Возвращает
mixedЗначение переменной сессии, null, если сессия недоступна, не запущена или предоставленное имя не найдено в сессии.
create()source public static
create( array $sessionConfig [] )
Возвращает новый экземпляр сессии после построения пакета конфигурации для неё. Эта функция позволяет использовать массив параметров, который будет использован для настройки сессии и обработчика. Самый важный ключ в массиве конфигурации — defaults, который указывает на набор конфигураций, которые следует унаследовать, возможные значения по умолчанию:
- php: просто используйте сессию, как настроено в php.ini
- cache: Используйте систему кэширования CakePHP в качестве хранилища для сессии, вам необходимо передать ключ
configсо значением имени уже настроенного движка кэша. - database: Используйте CakePHP ORM для сохранения и управления сессиями. По умолчанию это требует таблицу в вашей базе данных с именем
sessionsили ключmodelв конфигурации, чтобы указать, какой объект таблицы использовать. - cake: Используйте файлы для хранения сессий, но пусть CakePHP управляет ими и определяет, где их хранить.
Полный список параметров:
- defaults: либо 'php', 'database', 'cache' или 'cake', как описано выше.
- handler: Массив, содержащий конфигурацию обработчика
- ini: Список директив php.ini, которые следует установить перед началом сессии.
- timeout: Время в минутах, в течение которого сессия должна оставаться активной
Параметры
- массив
$sessionConfigнеобязательно [] - Конфигурация сессии.
Возвращает
Cake\Network\SessionСм. также
\Cake\Network\Session::__construct()delete()source public
delete( string $name )
Удаляет переменную из сессии.
Параметры
- строка
$name - Переменная сессии для удаления
engine()source public
engine( string|SessionHandlerInterface|null $class null , array $options [] )
Устанавливает экземпляр обработчика сессий, который нужно использовать для этой сессии. Если в качестве первого аргумента передается строка, она будет обрабатываться как имя класса, а второй аргумент будет передан как первый аргумент в конструкторе.
Если в качестве первого аргумента предоставляется экземпляр SessionHandlerInterface, обработчик будет установлен на него.
Если аргументы не переданы, будет возвращен текущий настроенный экземпляр обработчика или null, если он отсутствует.
Параметры
- строка|SessionHandlerInterface|null
$classнеобязательно null - Обработчик сессий для использования
- массив
$optionsнеобязательно [] - параметры, передаваемые в конструктор SessionHandler
Возвращает
SessionHandlerInterface|nullВыбрасывает
InvalidArgumentExceptionid()source public
id( string|null $id null )
Возвращает идентификатор сессии. Вызов этого метода не приведет к автоматическому запуску сессии. Возможно, вам придется вручную запустить сессию.
Передача идентификатора в него также позволяет заменить идентификатор сессии, если сессия еще не запущена. Обратите внимание, что в зависимости от обработчика сессий, не все символы разрешены в идентификаторе сессии. Например, обработчик сессий файлов допускает только символы в диапазоне a-z A-Z 0-9 , (запятая) и - (минус).
Параметры
- строка|null
$idнеобязательно null - Идентификатор для замены текущего идентификатора сессии
Возвращает
строкаИдентификатор сессии
options()source public
options( array $options )
Вызывает ini_set для каждого ключа в $options и устанавливает их на соответствующее значение в переданном массиве.
Пример:
$session->options(['session.use_cookies' => 1]);
Параметры
- массив
$options - Параметры ini для установки.
Выбрасывает
RuntimeExceptionесли какая-либо директива не может быть установлена
read()source public
read( string|null $name null )
Возвращает заданную переменную сессии или все из них, если параметры не указаны.
Параметры
- строка|null
$nameнеобязательно null - Имя переменной сессии (или путь, как отправлено в Hash.extract)
Возвращает
строка|массив|nullЗначение переменной сессии, null, если сессия недоступна, не запущена или указанное имя не найдено в сессии.
start()source public
start( )
Запускает сессию.
Возвращает
booleanTrue, если сессия была запущена
Выбрасывает
RuntimeExceptionесли сессия уже была запущена
started()source public
started( )
Определяет, была ли уже запущена сессия.
Возвращает
booleanTrue, если сессия была запущена.
write()source public
write( string|array $name , mixed $value null )
Записывает значение в заданную переменную сессии.
Параметры
- строка|массив
$name - Имя переменной
- смешанное
$valueнеобязательно null - Значение для записи
Подробное описание свойств
$_enginesource
protected SessionHandlerInterface|null
Экземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.
$_isCLIsource
protected boolean
Является ли эта сессия сессией, выполняемой в среде командной строки
false
$_lifetimesource
protected целое число
Время в секундах, в течение которого сессия будет действительна
© 2005–2018 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.
https://api.cakephp.org/3.5/class-Cake.Network.Session.html