Класс Session
Этот класс является обёрткой для встроенных функций PHP сессий. Он предоставляет несколько значений по умолчанию для наиболее распространённой конфигурации сессий через внешние обработчики и помогает использовать сессии в командной строке без предупреждений.
Сессии могут быть созданы по умолчанию с помощью Session::create(), или вы можете получить экземпляр новой сессии, просто создав этот класс и передав все необходимые параметры.
Если определённые параметры опущены, этот класс будет использовать значения по умолчанию из конфигурационных директив session.* в файле php.ini. Этот класс также будет изменять эти директивы, если предоставлены значения конфигурации.
Краткое описание свойств
- $_engine protected
SessionHandlerInterfaceЭкземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.
- $_isCLI protected
boolУказывает, работает ли эта сессия в среде командной строки.
- $_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
Устанавливает свойство engine и обновляет обработчик сессий в 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в конфигурации, чтобы указать, какой объект таблицы использовать. - 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.4/class-Cake.Http.Session.html