Класс 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Очищает сессию.
- consume() publicСчитывает и удаляет переменную из сессии.
-
Возвращает новый экземпляр сессии после создания конфигурационного пакета. Эта функция позволяет использовать массив опций для настройки сессии и используемого обработчика. Наиболее важный ключ в массиве конфигурации -
defaults, который указывает на набор конфигураций для наследования, возможные значения по умолчанию: - delete() publicУдаляет переменную из сессии.
- destroy() publicМетод-помощник для уничтожения недействительных сессий.
- engine() public
Устанавливает экземпляр обработчика сессий для использования в этой сессии. Если в качестве первого аргумента передано строковое значение, оно будет интерпретировано как имя класса, а второй аргумент будет передан в качестве первого аргумента в конструкторе.
- id() public
Возвращает идентификатор сессии. Вызов этого метода не автоматически запускает сессию. Возможно, вам потребуется вручную подтвердить запуск сессии.
- options() public
Вызывает ini_set для каждого ключа в
$optionsи устанавливает соответствующее значение из переданного массива. - read() publicВозвращает заданную переменную сессии или все из них, если параметры не указаны.
- renew() publicПерезапускает эту сессию.
- 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в уже созданный экземпляр обработчика сессий.
Параметры
- array
$configoptional [] - Конфигурация, применяемая к этому объекту сессии
_defaultConfig()source protected static
_defaultConfig( string $name )
Получение одной из предварительно настроенных конфигураций сессии по умолчанию.
Параметры
- string
$name - Имя конфигурации.
Возвращает
boolean|array_overwrite()source protected
_overwrite( array $old , array $new )
Используется для записи новых данных в _SESSION, так как PHP не позволяет нам устанавливать переменную _SESSION напрямую.
Параметры
- array
$old - Набор старых переменных => значения
- array
$new - Новый набор переменных => значение
_timedOut()source protected
_timedOut( )
Возвращает true, если сессия больше недействительна, потому что последнее обращение к ней произошло после установленного времени ожидания.
Возвращает
booleancheck()source public
check( string|null $name null )
Возвращает true, если переменная с заданным именем установлена в сессии.
Параметры
- string|null
$nameoptional null - Имя переменной для проверки
Возвращает
booleanTrue, если переменная существует
clear()source public
clear( boolean $renew false )
Очищает сессию.
Опционально также очищает идентификатор сессии и обновляет сессию.
Параметры
- boolean
$renewoptional false - Обновлять ли сессию? По умолчанию false.
consume()source public
consume( string $name )
Считывает и удаляет переменную из сессии.
Параметры
- string
$name - Ключ для чтения и удаления (или путь, как передаётся в Hash.extract).
Возвращает
mixedЗначение переменной сессии, 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\Network\SessionСм. также
\Cake\Network\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, если сессия недоступна, не запущена или указанное имя не найдено в сессии.
start()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–2017 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.4/class-Cake.Network.Session.html