Spec-Zone.ru › Symfony 4.0

NativeSessionStorage

class NativeSessionStorage implements SessionStorageInterface

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

Методы

__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 сессии.

Подробности

__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 о запуске сессии до начала выполнения кода пользовательского уровня. Установка во время выполнения не оказывает никакого эффекта). 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)

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

Этот метод должен вызывать sessionregenerateid($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()

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

Этот метод должен вызывать sessionwriteclose(), если этот интерфейс используется для объекта хранилища, предназначенного для тестирования на единичном или функциональном уровне, где реальная сессия 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, переопределите этот метод с помощью iniset с session.savehandler и 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

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

Spec-Zone.ru

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