Класс Session
Этот класс является обёрткой для собственных функций PHP session. Он предоставляет несколько значений по умолчанию для наиболее распространённой конфигурации сессий через внешние обработчики и помогает использовать сессии в командной строке без предупреждений.
Сессии могут быть созданы из значений по умолчанию, используя 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Перезапускает эту сессию.
- setEngine() protectedУстанавливает свойство движка и обновляет обработчик сессий в PHP.
- 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 - Имя конфигурации.
Возвращает
boolean|массив_overwrite()source protected
_overwrite( array $old , array $new )
Используется для записи новых данных в _SESSION, так как PHP не позволяет нам напрямую устанавливать переменную _SESSION.
Параметры
- массив
$old - Набор старых переменных => значения
- массив
$new - Новый набор переменных => значения
_timedOut()source protected
_timedOut( )
Возвращает true, если сессия больше не действительна, потому что последний доступ к ней был после истечения срока действия.
Возвращает
booleancheck()source public
check( string|null $name = null )
Возвращает true, если переменная с заданным именем установлена в сессии.
Параметры
- строка|null
$nameнеобязательно null - Имя переменной для проверки
Возвращает
booleanTrue, если переменная существует
clear()source public
clear( boolean $renew = false )
Очищает сессию.
При необходимости также очищает идентификатор сессии и обновляет сессию.
Параметры
- boolean
$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: время в минутах, в течение которого сессия должна оставаться активной
Параметры
- массив
$sessionConfigнеобязательно [] - Конфигурация сессии.
Возвращает
Cake\Http\SessionСм. также
\Cake\Http\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 )
Возвращает идентификатор сессии. Вызов этого метода не автоматически запустит сессию. Возможно, вам нужно вручную установить запущенную сессию.
Передавая id, вы также можете заменить идентификатор сессии, если сессия ещё не запущена. Обратите внимание, что в зависимости от обработчика сессий не все символы разрешены внутри идентификатора сессии. Например, обработчик сессий файлов допускает только символы в диапазоне a-z A-Z 0-9 , (запятая) и - (тире).
Параметры
- строка|null
$idнеобязательно null - Id для замены текущего идентификатора сессии
Возвращает
строкаИдентификатор сессии
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, если сессия недоступна, не запущена или заданное имя не найдено в сессии.
setEngine()source protected
setEngine( SessionHandlerInterface $handler )
Устанавливает свойство engine и обновляет обработчик сессий в PHP.
Параметры
- SessionHandlerInterface
$handler - Обработчик для установки
Возвращает
SessionHandlerInterfacestart()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
Экземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.
$_lifetimesource
protected целое число
Время в секундах, в течение которого сессия будет действительной
© 2005–present 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.6/class-Cake.Http.Session.html