Класс 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_pathphp.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 , string|null $value null )
Записывает значение в заданную переменную сессии.
Параметры
- строка|массив
$name - Имя переменной
- строка|null
$valueнеобязательно null - Значение для записи
Подробное описание свойств
$_enginesource
protected SessionHandlerInterface
Экземпляр обработчика сессий, используемый в качестве движка для сохранения данных сессии.
$_lifetimesource
protected целое число
Время в секундах, в течение которого сессия будет действительной
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Network.Session.html