Класс Session
Этот класс является обёрткой для встроенных функций PHP сессий. Он предоставляет несколько значений по умолчанию для наиболее распространённой конфигурации сессий через внешние обработчики и помогает использовать сессии в консоли без предупреждений.
Сессии могут быть созданы из значений по умолчанию с помощью Session::create(), или вы можете получить экземпляр новой сессии, просто инициализируя этот класс и передавая все желаемые параметры.
Когда конкретные параметры опущены, этот класс будет использовать значения по умолчанию из конфигурационных значений из session.* директив в файле php.ini. Этот класс также будет изменять эти директивы при предоставлении конфигурационных значений.
Краткое описание свойств
-
$_engineprotectedЭкземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.SessionHandlerInterface -
$_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на уже инициализированный объект обработчика сессий.
Параметры
- массив
$configнеобязательно [] - Конфигурация для применения к этому объекту сессии
_defaultConfig()source protected static
_defaultConfig( string $name )
Получение одной из предварительно заданных конфигураций сессий по умолчанию.
Параметры
- строка
$name - Имя конфигурации.
Возвращает
логическое значение|массив_hasSession()source protected
_hasSession( )
Возвращает, существует ли сессия
Возвращает
логическое значение_overwrite()source protected
_overwrite( array $old , array $new )
Используется для записи новых данных в _SESSION, так как PHP не разрешает нам устанавливать переменную _SESSION напрямую.
Параметры
- массив
$old - Набор старых переменных => значений
- массив
$new - Новый набор переменных => значение
_timedOut()source protected
_timedOut( )
Возвращает true, если сессия больше не действительна, потому что последний доступ к ней был после установленного таймаута.
Возвращает
логическое значениеcheck()source public
check( string|null $name null )
Возвращает true, если переменная с заданным именем установлена в сессии.
Параметры
- строка|null
$nameнеобязательно null - Имя переменной для проверки
Возвращает
логическое значениеTrue, если переменная есть
clear()source public
clear( boolean $renew false )
Очищает сессию.
По желанию, также очищает идентификатор сессии и обновляет сессию.
Параметры
- логическое значение
$renewнеобязательно false - Если сессия должна быть обновлена, также. По умолчанию false.
consume()source public
consume( string $name )
Считывает и удаляет переменную из сессии.
Параметры
- строка
$name - Ключ для чтения и удаления (или путь, как передается в Hash.extract).
Возвращает
смешанный типЗначение переменной сессии, null, если сессия недоступна, сессия не запущена или указанное имя не найдено в сессии.
create()source 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: Время в минутах, в течение которого сессия должна оставаться активной
Параметры
- array
$sessionConfigнеобязательный [] - Конфигурация сессии.
Возвращает
Cake\Network\SessionСм. также
\Cake\Network\Session::__construct()delete()source public
delete( string $name )
Удаляет переменную из сессии.
Параметры
- string
$name - Переменная сессии для удаления
engine()source public
engine( string|SessionHandlerInterface|null $class null , array $options [] )
Устанавливает экземпляр обработчика сессии для использования в этой сессии. Если для первого аргумента передано строку, она будет обработана как имя класса, а второй аргумент будет передан как первый аргумент в конструкторе.
Если в качестве первого аргумента предоставлен экземпляр SessionHandlerInterface, обработчик будет установлен на него.
Если аргументов нет, он вернет текущий настроенный экземпляр обработчика или null, если он не существует.
Параметры
- string|SessionHandlerInterface|null
$classнеобязательный null - Обработчик сессий для использования
- array
$optionsнеобязательный [] - опции для передачи конструктору SessionHandler
Возвращает
SessionHandlerInterface|nullИсключения
InvalidArgumentExceptionid()source public
id( string|null $id null )
Возвращает идентификатор сессии. Вызов этого метода не будет автоматически запускать сессию. Возможно, придётся вручную инициировать запуск сессии.
Передача идентификатора также позволяет заменить идентификатор сессии, если сессия ещё не запущена. Обратите внимание, что в зависимости от обработчика сессии, не все символы разрешены в идентификаторе сессии. Например, обработчик файловых сессий допускает только символы в диапазоне a-z A-Z 0-9 , (запятая) и - (минус).
Параметры
- string|null
$idнеобязательный null - Идентификатор для замены текущего идентификатора сессии
Возвращает
stringИдентификатор сессии
options()source public
options( array $options )
Вызывает ini_set для каждого ключа в $options и устанавливает их на соответствующее значение в переданном массиве.
Пример:
$session->options(['session.use_cookies' => 1]);
Параметры
- array
$options - Опции ini для установки.
Исключения
RuntimeExceptionесли какая-либо директива не могла быть установлена
read()source public
read( string|null $name null )
Возвращает заданную переменную сессии или все переменные, если параметров нет.
Параметры
- string|null
$nameнеобязательный null - Имя переменной сессии (или путь, как в Hash.extract)
Возвращает
string|nullЗначение переменной сессии, null если сессия недоступна, не начата или заданное имя не найдено в сессии.
start()source public
start( )
Запускает сессию.
Возвращает
booleanTrue, если сессия была запущена
Исключения
RuntimeExceptionесли сессия уже была запущена
started()source public
started( )
Определяет, была ли уже запущена сессия.
Возвращает
booleanTrue, если сессия была запущена.
write()source public
write( string|array $name , mixed $value null )
Записывает значение в заданную переменную сессии.
Параметры
- string|array
$name - Имя переменной
- mixed
$valueнеобязательный null - Значение для записи
Подробное описание свойств
$_enginesource
protected SessionHandlerInterface
Экземпляр обработчика сессии, используемый в качестве движка для сохранения данных сессии.
$_isCLIsource
protected boolean
Указывает, выполняется ли данная сессия в среде командной строки
false
© 2005–2017 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.3/class-Cake.Network.Session.html