Spec-Zone.ru › CakePHP 3.1

Класс Session

Этот класс является обёрткой для нативных функций PHP сессий. Он предоставляет несколько значений по умолчанию для наиболее распространённой конфигурации сессий через внешние обработчики и помогает использовать сессии в командной строке без предупреждений.

Сессии могут быть созданы по умолчанию с помощью Session::create() или вы можете получить экземпляр новой сессии, просто создав этот класс и передав все необходимые опции.

Когда определённые опции опущены, этот класс возьмёт значения по умолчанию из конфигурационных значений session.* директив в php.ini. Этот класс также изменит эти директивы, когда будут предоставлены значения конфигурации.

Пространство имён: Cake\Network
Расположение Network/Session.php

Подробное описание методов

__constructsource public

__construct( array $config [] )

Конструктор.

Конфигурация:

  • timeout: Время в минутах, в течение которого сессия должна быть валидной.
  • cookiePath: Путь URL, для которого устанавливается cookie сессии. Соответствует session.cookie_path конфигурации php.ini. По умолчанию — базовый путь приложения.
  • ini: Список директив php.ini, которые нужно изменить перед началом сессии.
  • handler: Массив, содержащий как минимум class ключ. Используется в качестве движка сессий для сохранения данных. Остальные ключи массива будут переданы как массив конфигурации для движка. Вы можете установить class ключ со уже инициализированным объектом обработчика сессий.

Параметры

массив $config необязательно []
Конфигурация для применения к этому объекту сессии

_defaultConfigsource protected static

_defaultConfig( string $name )

Получить одну из предустановленных конфигураций сессий по умолчанию.

Параметры

строка $name
Имя конфигурации.

Возвращает

boolean|array
bool|массив

_hasSessionsource protected

_hasSession( )

Возвращает, существует ли сессия

Возвращает

boolean
bool

_overwritesource protected

_overwrite( array $old , array $new )

Используется для записи новых данных в _SESSION, так как PHP не позволяет нам напрямую устанавливать переменную _SESSION.

Параметры

массив $old
Набор старых переменных => значения
массив $new
Новый набор переменных => значение

_timedOutsource protected

_timedOut( )

Возвращает true, если сессия больше недействительна, потому что последний доступ к ней произошел после установленного времени ожидания.

Возвращает

boolean
bool

checksource public

check( string|null $name null )

Возвращает true, если заданное имя переменной установлено в сессии.

Параметры

строка|null $name необязательно null
Имя переменной для проверки

Возвращает

boolean
True, если переменная существует

clearsource public

clear( boolean $renew false )

Очищает сессию.

Необязательно также очищает идентификатор сессии и обновляет сессию.

Параметры

булево $renew необязательно false
Если сессия должна быть обновлена. По умолчанию false.

consumesource public

consume( string $name )

Считывает и удаляет переменную из сессии.

Параметры

строка $name
Ключ для чтения и удаления (или путь, как в Hash.extract).

Возвращает

mixed
Значение переменной сессии, null если сессия недоступна, не начата или заданное имя не найдено в сессии.

createsource 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

См. также

Cake\Network\Session::__construct()

deletesource public

delete( string $name )

Удаляет переменную из сессии.

Параметры

строка $name
Переменная сессии для удаления

destroysource public

destroy( )

Вспомогательный метод для уничтожения недействительных сессий.

enginesource public

engine( string|SessionHandlerInterface|null $class null , array $options [] )

Устанавливает экземпляр обработчика сессий для использования в этой сессии. Если в качестве первого аргумента передана строка, она будет обработана как имя класса, а второй аргумент будет передан в качестве первого аргумента в конструктор.

Если в качестве первого аргумента передан экземпляр SessionHandlerInterface, обработчик будет установлен на него.

Если аргументы не переданы, будет возвращён текущий настроенный экземпляр обработчика или null, если он отсутствует.

Параметры

строка|SessionHandlerInterface|null $class необязательно null
Обработчик сессий для использования
массив $options необязательно []
опции для передачи в конструктор SessionHandler

Возвращает

SessionHandlerInterface|null
\SessionHandlerInterface|null

Выбрасывает

InvalidArgumentException
\InvalidArgumentException

idsource public

id( string|null $id null )

Возвращает идентификатор сессии. Вызов этого метода не автоматически запускает сессию. Вам может потребоваться вручную подтвердить запущенную сессию.

Передача идентификатора в него, вы также можете заменить идентификатор сессии, если сессия ещё не начата. Обратите внимание, что в зависимости от обработчика сессий, не все символы разрешены в идентификаторе сессии. Например, обработчик файлов сессий допускает только символы в диапазоне a-z A-Z 0-9 , (запятая) и - (минус).

Параметры

строка|null $id необязательно null
Идентификатор для замены текущего идентификатора сессии

Возвращает

string
Идентификатор сессии

optionssource public

options( array $options )

Вызывает ini_set для каждого ключа в $options и устанавливает их соответствующее значение в переданном массиве.

Пример:

$session->options(['session.use_cookies' => 1]);

Параметры

массив $options
Опции ini для установки.

Выбрасывает

RuntimeException
если какая-либо директива не может быть установлена
END_OF_DOCUMENT_MARKER ```

readsource public

read( string|null $name null )

Возвращает заданную переменную сессии или все переменные, если параметры не указаны.

Параметры

string|null $name необязательно null
Имя переменной сессии (или путь, как в Hash.extract)

Возвращает

string|null
Значение переменной сессии, null, если сессия недоступна, не запущена или имя не найдено в сессии.

renewsource public

renew( )

Перезапускает эту сессию.

startsource public

start( )

Инициализирует сессию.

Возвращает

boolean
True, если сессия была запущена

Выбрасывает

RuntimeException
если сессия уже была запущена

startedsource public

started( )

Определяет, была ли уже запущена сессия.

Возвращает

boolean
True, если сессия запущена.

writesource public

write( string|array $name , string|null $value null )

Записывает значение в заданную переменную сессии.

Параметры

string|array $name
Имя переменной
string|null $value необязательно null
Значение для записи

Краткое описание свойств

$_enginesource

protected SessionHandlerInterface

Экземпляр обработчика сессии, используемый в качестве движка для сохранения данных сессии.

$_isCLIsource

protected boolean

Указывает, выполняется ли эта сессия в консольной среде

false

$_lifetimesource

protected integer

Время в секундах, в течение которого сессия будет действительной

$_startedsource

protected boolean

Указывает, была ли уже запущена сессия

© 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.1/class-Cake.Network.Session.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API