Класс 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Очищает сессию.
- close() 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.
close()source public
close( )
Записывает данные и закрывает сессию
Возвращает
booleanTrue, если сессия была запущена
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 )
Возвращает идентификатор сессии. Вызов этого метода не будет автоматически запускать сессию. Вам может потребоваться вручную подтвердить запуск сессии.
Передача идентификатора, вы также можете заменить идентификатор сессии, если сессия ещё не была запущена. Обратите внимание, что в зависимости от обработчика сессий, не все символы разрешены в идентификаторе сессии. Например, обработчик файлов сессий допускает только символы в диапазоне 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, если сессия недоступна, не начата или указанное имя не найдено в сессии.
setEngine()source protected
setEngine( SessionHandlerInterface $handler )
Устанавливает свойство engine и обновляет обработчик сессий в PHP.
Параметры
- SessionHandlerInterface
$handler - Обработчик для установки
Возвращает
SessionHandlerInterfacestart()source public
start( )
Запускает сессию.
Возвращает
булевоTrue, если сессия была запущена
Исключения
RuntimeExceptionесли сессия уже запущена
started()source public
started( )
Определяет, была ли сессия уже запущена.
Возвращает
булевоTrue, если сессия была запущена.
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.7/class-Cake.Http.Session.html