Класс 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Устанавливает свойство engine и обновляет обработчик сессий в 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в конфигурации, чтобы указать, какой объект таблицы использовать. - cake: Используйте файлы для хранения сессий, но позвольте CakePHP управлять ими и решать, где их хранить.
Полный список опций:
- defaults: либо 'php', 'database', 'cache' или 'cake', как описано выше.
- handler: Массив, содержащий конфигурацию обработчика
- ini: Список директив php.ini, которые нужно установить перед началом сессии.
- timeout: Время в минутах, в течение которого сессия должна оставаться активной
Параметры
- array
$sessionConfigнеобязательно [] - Конфигурация сессии.
Возвращает
Cake\Http\SessionСм. также
\Cake\Http\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|array|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 )
Записывает значение в заданную переменную сессии.
Параметры
- string|array
$name - Имя переменной
- mixed
$valueнеобязательно null - Значение для записи
Подробное описание свойств
$_enginesource
protected SessionHandlerInterface
Экземпляр обработчика сессии, используемый в качестве движка для сохранения данных сессии.
© 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.8/class-Cake.Http.Session.html