Spec-Zone.ru › Symfony 4.1

NativeSessionStorage

class NativeSessionStorage implements SessionStorageInterface

Это базовый класс для хранения атрибутов сессии.

Свойства

protected SessionBagInterface[] $bags
protected bool $started
protected bool $closed
protected AbstractProxy|SessionHandlerInterface $saveHandler
protected MetadataBag $metadataBag

Методы

__construct(array $options = array(), SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null)

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

AbstractProxy|SessionHandlerInterface getSaveHandler()

Получает экземпляр обработчика сохранения.

bool start()

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

string getId()

Возвращает идентификатор сессии.

setId(string $id)

Устанавливает идентификатор сессии.

mixed getName()

Возвращает имя сессии.

setName(string $name)

Устанавливает имя сессии.

bool regenerate(bool $destroy = false, int $lifetime = null)

Перегенерирует идентификатор, представляющий это хранилище.

save()

Вынуждает сохранение и закрытие сессии.

clear()

Очистить все данные сессии в памяти.

registerBag(SessionBagInterface $bag)

Регистрирует SessionBagInterface для использования.

SessionBagInterface getBag(string $name)

Получает SessionBagInterface по имени.

setMetadataBag(MetadataBag $metaBag = null)
MetadataBag getMetadataBag()

Получает MetadataBag.

bool isStarted()

Проверяет, начата ли сессия.

setOptions(array $options)

Устанавливает переменные ini сессии session.*.

setSaveHandler(SessionHandlerInterface|null $saveHandler = null)

Регистрирует обработчик сохранения сессии как обработчик PHP сессии.

loadSession(array $session = null)

Загрузить сессию с атрибутами.

Подробности

__construct(array $options = array(), SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null)

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

Список параметров для массива $options со значениями по умолчанию.

Параметры

массив $options Параметры конфигурации сессии
SessionHandlerInterface|null $handler
MetadataBag $metaBag MetadataBag

См. также

http://php.net/session.configuration для параметров, но мы опускаем "session." с начала ключей для удобства. ("auto_start", не поддерживается, поскольку он сообщает PHP о запуске сессии перед запуском кода пользовательского пространства PHP. Настройка во время выполнения не оказывает никакого эффекта). cache_limiter, "" (используйте "0", чтобы предотвратить отправку заголовков полностью). cache_expire, "0" cookie_domain, "" cookie_httponly, "" cookie_lifetime, "0" cookie_path, "/" cookie_secure, "" gc_divisor, "100" gc_maxlifetime, "1440" gc_probability, "1" lazy_write, "1" name, "PHPSESSID" referer_check, "" serialize_handler, "php" use_strict_mode, "0" use_cookies, "1" use_only_cookies, "1" use_trans_sid, "0" upload_progress.enabled, "1" upload_progress.cleanup, "1" upload_progress.prefix, "upload_progress_" upload_progress.name, "PHP_SESSION_UPLOAD_PROGRESS" upload_progress.freq, "1%" upload_progress.min-freq, "1" url_rewriter.tags, "a=href,area=href,frame=src,form=,fieldset=" sid_length, "32" sid_bits_per_character, "5" trans_sid_hosts, $_SERVER['HTTP_HOST'] trans_sid_tags, "a=href,area=href,frame=src,form="

AbstractProxy|SessionHandlerInterface getSaveHandler()

Возвращает экземпляр обработчика сохранения.

Значение возврата

AbstractProxy|SessionHandlerInterface

bool start()

Запускает сессию.

Значение возврата

bool True, если запущена

Исключения

RuntimeException если при запуске сессии произошла ошибка

string getId()

Возвращает идентификатор сессии.

Значение возврата

string Идентификатор сессии или пустая строка

setId(string $id)

Устанавливает идентификатор сессии.

Параметры

string $id

mixed getName()

Возвращает имя сессии.

Значение возврата

mixed Имя сессии

setName(string $name)

Устанавливает имя сессии.

Параметры

string $name

bool regenerate(bool $destroy = false, int $lifetime = null)

Перегенерирует идентификатор, представляющий это хранилище.

Этот метод должен вызывать session_regenerate_id($destroy), если этот интерфейс не используется для объекта хранилища, предназначенного для тестирования юнит-тестирования или функционального тестирования, где реальная сессия PHP будет мешать тестированию.

Примечание: regenerate+destroy не должно очищать данные сессии в памяти, а только удалять данные сессии из постоянного хранилища.

Внимание: При перегенерации идентификатора сессии в проектировании сессии PHP не участвует блокировка. См. https://bugs.php.net/bug.php?id=61470 для обсуждения. Поэтому вы должны убедиться, что перегенерированная сессия сохранена ПЕРЕД отправкой заголовков с новым ID. Symfony's HttpKernel предлагает слушатель для этого. См. Symfony\Component\HttpKernel\EventListener\SaveSessionListener. В противном случае данные сессии могут снова потеряться для параллельных запросов с новым ID. Одним из результатов может быть выход из системы после входа в систему.

Параметры

bool $destroy Удалить сессию при перегенерации?
int $lifetime Устанавливает срок действия cookie сессии. Значение null оставит системные настройки без изменений, 0 устанавливает срок действия cookie до завершения сессии браузера. Время в секундах, а не в формате Unix Timestamp.

Значение возврата

bool True, если сессия перегенерирована, false — если произошла ошибка

Исключения

RuntimeException Если при перегенерации этого хранилища возникла ошибка

save()

Принудительно сохранить и закрыть сессию.

Этот метод должен вызывать session_write_close(), если этот интерфейс используется для объекта хранилища, предназначенного для тестирования юнит-тестирования или функционального тестирования, где реальная сессия PHP будет мешать тестированию, в этом случае он должен фактически сохранять данные сессии, если это необходимо.

Исключения

RuntimeException если сессия сохраняется без запуска, или если сессия уже закрыта

clear()

Очистить все данные сессии в памяти.

registerBag(SessionBagInterface $bag)

Регистрирует SessionBagInterface для использования.

Параметры

SessionBagInterface $bag

SessionBagInterface getBag(string $name)

Получает SessionBagInterface по имени.

Параметры

string $name

Значение возврата

SessionBagInterface

Исключения

InvalidArgumentException Если сумка не существует

setMetadataBag(MetadataBag $metaBag = null)

Параметры

MetadataBag $metaBag

MetadataBag getMetadataBag()

Возвращает MetadataBag.

Значение возврата

MetadataBag

bool isStarted()

Проверяет, запущена ли сессия.

Значение возврата

bool True, если запущена, false в противном случае

setOptions(array $options)

Устанавливает переменные ini session.*.

Для удобства мы опускаем "session." с начала ключей. Явно игнорирует другие ключи ini.

Параметры

массив $options Массив директив ini сессии (ключ => значение)

См. также

http://php.net/session.configuration

setSaveHandler(SessionHandlerInterface|null $saveHandler = null)

Регистрирует обработчик сохранения сессии как обработчик PHP сессии.

Для использования внутренних обработчиков сохранения сессии PHP переопределите этот метод с помощью ini_set с session.save_handler и session.save_path, например.

ini_set('session.save_handler', 'files');
ini_set('session.save_path', '/tmp');

или передайте \SessionHandler экземпляр, который настраивает session.save_handler в конструкторе, для шаблона см. NativeFileSessionHandler или используйте обработчики в пакете composer drak/native-session

Параметры

SessionHandlerInterface|null $saveHandler

Исключения

InvalidArgumentException

См. также

http://php.net/session-set-save-handler
http://php.net/sessionhandlerinterface
http://php.net/sessionhandler
http://github.com/drak/NativeSession

protected loadSession(array $session = null)

Загрузить сессию с атрибутами.

После запуска сессии PHP извлекает сессию из настроенных обработчиков (либо внутренних PHP, либо настроенного пользовательского обработчика сохранения с помощью session_set_save_handler()). PHP берет возвращаемое значение от обработчика read(), десериализует его и автоматически заполняет $_SESSION результатом.

Параметры

Массив $сессия

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.html

Spec-Zone.ru

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