SessionStorageInterface
интерфейс SessionStorageInterface
StorageInterface.
Методы
| bool | start() Инициализирует сессию. | |
| bool | isStarted() Проверяет, начата ли сессия. | |
| string | getId() Возвращает идентификатор сессии. | |
| setId(string $id) Устанавливает идентификатор сессии. | ||
| mixed | getName() Возвращает имя сессии. | |
| setName(string $name) Устанавливает имя сессии. | ||
| bool | regenerate(bool $destroy = false, int $lifetime = null) Перегенерирует идентификатор, представляющий это хранилище. | |
| save() Принудительно сохраняет и закрывает сессию. | ||
| clear() Очистить все данные сессии в памяти. | ||
| SessionBagInterface | getBag(string $name) Получает SessionBagInterface по имени. | |
| registerBag(SessionBagInterface $bag) Регистрирует SessionBagInterface для использования. | ||
| MetadataBag | getMetadataBag() |
Подробное описание
bool start()
Инициализирует сессию.
Значение результата
| bool | True, если начата |
Исключения
| RuntimeException | если возникла проблема при инициализации сессии |
bool isStarted()
Проверяет, начата ли сессия.
Значение результата
| bool | True, если начата, иначе false |
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 для обсуждения. Поэтому необходимо убедиться, что перегенерированная сессия сохранена ДО отправки заголовков с новым идентификатором. Symfony's HttpKernel предоставляет обработчик для этого. См. Symfony\Component\HttpKernel\EventListener\SaveSessionListener. В противном случае данные сессии могут снова быть потеряны для параллельных запросов с новым идентификатором. Одним из результатов может быть выход из системы после входа в систему.
Параметры
| bool | $destroy | Уничтожить сессию при перегенерации? |
| int | $lifetime | Устанавливает срок действия cookie для cookie сессии. Значение null оставит системные настройки без изменений, 0 установит cookie на истечение с сессией браузера. Время в секундах, и не является меткой времени Unix. |
Значение результата
| bool | True, если сессия перегенерирована, false в случае ошибки |
Исключения
| RuntimeException | Если при перегенерации этого хранилища произошла ошибка |
save()
Принудительно сохраняет и закрывает сессию.
Этот метод должен вызывать session_write_close(), если этот интерфейс используется для объекта хранилища, предназначенного для тестирования на единицу или функционального тестирования, где реальная PHP-сессия будет мешать тестированию, в этом случае он должен фактически сохранять данные сессии, если это необходимо.
Исключения
| RuntimeException | если сессия сохранена без ее инициализации или если сессия уже закрыта |
clear()
Очистить все данные сессии в памяти.
SessionBagInterface getBag(string $name)
Получает SessionBagInterface по имени.
Параметры
| string | $name |
Значение результата
| SessionBagInterface |
Исключения
| InvalidArgumentException | Если пакет не существует |
registerBag(SessionBagInterface $bag)
Регистрирует SessionBagInterface для использования.
Параметры
| SessionBagInterface | $bag |
MetadataBag getMetadataBag()
Значение результата
| MetadataBag |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.html