Класс Session
Этот класс является оболочкой для родных функций PHP сессий. Он предоставляет несколько значений по умолчанию для наиболее распространённой конфигурации сессий через внешние обработчики и помогает использовать сессии в CLI без предупреждений.
Сессии могут быть созданы из значений по умолчанию, используя Session::create(), или вы можете получить экземпляр новой сессии, просто создав этот класс и передав все необходимые параметры.
Когда конкретные параметры опущены, этот класс будет использовать значения по умолчанию из конфигурационных директив session.* в php.ini. Этот класс также будет изменять эти директивы, когда предоставлены конфигурационные значения.
Краткое описание свойств
- $_engine protected
SessionHandlerInterfaceЭкземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.
- $_isCLI protected
boolУказывает, работает ли эта сессия в среде CLI
- $_lifetime protected
intВремя в секундах, в течение которого сессия будет действительной
- $_started protected
boolУказывает, была ли сессия уже начата
Краткое описание методов
-
__construct() public
Конструктор.
-
_defaultConfig() protected static
Получить одну из предварительно подготовленных конфигураций сессии по умолчанию.
-
_hasSession() protected
Возвращает, существует ли сессия
-
_overwrite() protected
Используется для записи новых данных в _SESSION, так как PHP не позволяет нам устанавливать переменную _SESSION напрямую.
-
_timedOut() protected
Возвращает true, если сессия больше не действительна, потому что последний доступ к ней был после истечения установленного времени ожидания.
-
check() public
Возвращает true, если заданное имя переменной установлено в сессии.
-
clear() public
Очищает сессию.
-
close() public
Записывает данные и закрывает сессию
-
consume() public
Считывает и удаляет переменную из сессии.
-
create() public static
Возвращает новый экземпляр сессии после создания набора конфигурации для неё. Эта функция позволяет использовать массив параметров, который будет использован для конфигурации сессии и используемого обработчика. Самым важным ключом в массиве конфигурации является
defaults, который указывает набор конфигураций для наследования, возможные значения по умолчанию: -
delete() public
Удаляет переменную из сессии.
-
destroy() public
Вспомогательный метод для уничтожения недействительных сессий.
-
engine() public
Устанавливает экземпляр обработчика сессий, который необходимо использовать для этой сессии. Если в качестве первого аргумента передаётся строка, она будет интерпретирована как имя класса, а второй аргумент будет передан в качестве первого аргумента в конструктор.
-
id() public
Возвращает идентификатор сессии. Вызов этого метода не будет автоматически запускать сессию. Возможно, потребуется вручную подтвердить запуск сессии.
-
options() public
Вызывает ini_set для каждого ключа в
$optionsи устанавливает соответствующее значение из переданного массива. -
read() public
Возвращает заданную переменную сессии или все переменные, если параметры не указаны.
-
readOrFail() public
Возвращает заданную переменную сессии или выбрасывает исключение, если она не найдена.
-
renew() public
Перезапускает эту сессию.
-
setEngine() protected
Устанавливает свойство движка и обновляет обработчик сессий в PHP.
-
start() public
Запускает сессию.
-
started() public
Определяет, была ли сессия уже запущена.
-
write() public
Записывает значение в заданную переменную сессии.
Подробное описание методов
__construct() public
__construct(array<string, mixed> $config = [])
Конструктор.
Настройка:
- timeout: Время в минутах, в течение которого сессия должна быть действительной.
- cookiePath: Путь URL, для которого устанавливается cookie сессии. Соответствует настройке
session.cookie_pathв php.ini. По умолчанию используется базовый путь приложения. - ini: Список директив php.ini, которые нужно изменить перед началом сессии.
- handler: Массив, содержащий как минимум ключ
engine. Используется в качестве движка сессии для сохранения данных. Остальные ключи массива будут переданы как конфигурационный массив для движка. Вы можете установить ключengineна уже созданный объект обработчика сессий.
Параметры
-
array<string, mixed>$config необязательно Конфигурация, которую необходимо применить к этому объекту сессии
_defaultConfig() protected static
_defaultConfig(string $name): array|false
Получение одной из предварительно подготовленных конфигураций сессий по умолчанию.
Параметры
-
string$name Имя конфигурации.
Возвращает
array|false_hasSession() protected
_hasSession(): bool
Возвращает, существует ли сессия.
Возвращает
bool_overwrite() protected
_overwrite(array $old, array $new): void
Используется для записи новых данных в _SESSION, так как PHP не позволяет напрямую устанавливать переменную _SESSION.
Параметры
-
array$old Набор старых переменных => значений
-
array$new Новый набор переменных => значений
Возвращает
void_timedOut() protected
_timedOut(): bool
Возвращает true, если сессия больше недействительна, потому что последний доступ к ней был после истечения установленного срока действия.
Возвращает
boolcheck() public
check(string|null $name = null): bool
Возвращает true, если переменная с заданным именем установлена в сессии.
Параметры
-
string|null$name необязательно Имя переменной, для проверки
Возвращает
boolclear() public
clear(bool $renew = false): void
Очищает сессию.
Необязательно также очищает идентификатор сессии и обновляет сессию.
Параметры
-
bool$renew необязательно Если сессия должна быть обновлена. По умолчанию false.
Возвращает
voidclose() public
close(): true
Запись данных и закрытие сессии
Возвращает
trueconsume() public
consume(string $name): mixed|null
Считывает и удаляет переменную из сессии.
Параметры
-
string$name Ключ для чтения и удаления (или путь, передаваемый в Hash.extract).
Возвращает
mixed|nullcreate() public static
create(array $sessionConfig = []): static
Возвращает новый экземпляр сессии после создания пакета конфигурации для нее. Эта функция позволяет использовать массив опций, которые будут использоваться для настройки сессии и обработчика. Самый важный ключ в массиве конфигурации — 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 необязательно Конфигурация сессии.
Возвращает
staticСм. также
delete() public
delete(string $name): void
Удаляет переменную из сессии.
Параметры
-
string$name Переменная сессии для удаления
Возвращает
voiddestroy() public
destroy(): void
Вспомогательный метод для уничтожения недействительных сессий.
Возвращает
voidengine() public
engine(SessionHandlerInterface|string|null $class = null, array<string, mixed> $options = []): SessionHandlerInterface|null
Устанавливает экземпляр обработчика сессий, который нужно использовать для этой сессии. Если для первого аргумента передается строка, она будет интерпретироваться как имя класса, а второй аргумент будет передан в качестве первого аргумента в конструкторе.
Если в качестве первого аргумента предоставляется экземпляр SessionHandlerInterface, обработчик будет установлен на него.
Если аргументы не передаются, возвращается текущий настроенный экземпляр обработчика или null, если он не существует.
Параметры
-
SessionHandlerInterface|string|null$class необязательно Обработчик сессий для использования
-
array<string, mixed>$options необязательно Опции для передачи конструктору SessionHandler
Возвращает
SessionHandlerInterface|nullИсключения
InvalidArgumentExceptionid() public
id(string|null $id = null): string
Возвращает идентификатор сессии. Вызов этого метода не приведет к автоматическому началу сессии. Возможно, вам придется вручную подтвердить запущенную сессию.
Передача идентификатора в него также позволяет заменить идентификатор сессии, если сессия еще не запущена. Обратите внимание, что в зависимости от обработчика сессий не все символы допускаются в идентификаторе сессии. Например, обработчик сессий с файлами допускает только символы в диапазонах a-z A-Z 0-9 , (запятая) и - (минус).
Параметры
-
string|null$id необязательно Идентификатор для замены текущего идентификатора сессии
Возвращает
stringoptions() public
options(array<string, mixed> $options): void
Вызывает ini_set для каждого ключа в $options и устанавливает их соответствующее значение в переданном массиве.
Пример:
$session->options(['session.use_cookies' => 1]);
Параметры
-
array<string, mixed>$options Опции ini для установки.
Возвращает
voidИсключения
RuntimeExceptionесли какая-либо директива не может быть установлена
read() public
read(string|null $name = null, mixed $default = null): mixed|null
Возвращает заданную переменную сессии или все из них, если параметры не заданы.
Параметры
-
string|null$name необязательно Имя переменной сессии (или путь, передаваемый в Hash.extract)
-
mixed$default необязательно Значение, возвращаемое, когда путь не существует
Возвращает
mixed|nullreadOrFail() public
readOrFail(string $name): mixed|null
Возвращает заданную переменную сессии или выбрасывает исключение, если она не найдена.
Параметры
-
string$name Имя переменной сессии (или путь, передаваемый в Hash.extract)
Возвращает
mixed|nullИсключения
RuntimeExceptionrenew() public
renew(): void
Перезапускает эту сессию.
Возвращает
voidsetEngine() protected
setEngine(SessionHandlerInterface $handler): SessionHandlerInterface
Устанавливает свойство движка и обновляет обработчик сессий в PHP.
Параметры
-
SessionHandlerInterface$handler Обработчик для установки
Возвращает
SessionHandlerInterfacestart() public
start(): bool
Запускает сессию.
Возвращает
boolИсключения
RuntimeExceptionесли сессия уже запущена
started() public
started(): bool
Определяет, была ли уже запущена сессия.
Возвращает
boolwrite() public
write(array|string $name, mixed $value = null): void
Записывает значение в переменную сессии с заданным именем.
Параметры
-
array|string$name Имя переменной
-
mixed$value optional Значение для записи
Возвращает
voidПодробное описание свойств
$_engine protected
Экземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.
Тип
SessionHandlerInterface$_isCLI protected
Указывает, выполняется ли эта сессия в среде командной строки (CLI).
Тип
bool$_lifetime protected
Время в секундах, на которое сессия будет действительна.
Тип
int$_started protected
Указывает, была ли уже запущена сессия.
Тип
bool
© 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/4.3/class-Cake.Http.Session.html