PhpBridgeSessionStorage
class PhpBridgeSessionStorage extends NativeSessionStorage
Позволяет PHP инициировать и управлять сессией с помощью Symfony.
Методы
| __construct(SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null) | ||
| AbstractProxy|SessionHandlerInterface | getSaveHandler() Возвращает экземпляр обработчика сохранения. | from NativeSessionStorage |
| bool | start() Инициализирует сессию. | |
| string | getId() Возвращает идентификатор сессии. | from NativeSessionStorage |
| setId(string $id) Устанавливает идентификатор сессии. | from NativeSessionStorage | |
| mixed | getName() Возвращает имя сессии. | from NativeSessionStorage |
| setName(string $name) Устанавливает имя сессии. | from NativeSessionStorage | |
| bool | regenerate(bool $destroy = false, int $lifetime = null) Пересоздаёт идентификатор, представляющий это хранилище. | from NativeSessionStorage |
| save() Вынужденное сохранение и закрытие сессии. | from NativeSessionStorage | |
| clear() Очистить все данные сессии в памяти. | ||
| registerBag(SessionBagInterface $bag) Регистрирует SessionBagInterface для использования. | from NativeSessionStorage | |
| SessionBagInterface | getBag(string $name) Получить SessionBagInterface по имени. | from NativeSessionStorage |
| setMetadataBag(MetadataBag $metaBag = null) Устанавливает MetadataBag. | from NativeSessionStorage | |
| MetadataBag | getMetadataBag() Получить MetadataBag. | from NativeSessionStorage |
| bool | isStarted() Проверить, запущена ли сессия. | from NativeSessionStorage |
| setOptions(array $options) Устанавливает переменные session.* ini. | from NativeSessionStorage | |
| setSaveHandler(SessionHandlerInterface|null $saveHandler = null) Регистрирует обработчик сохранения сессии как PHP обработчик сессий. | from NativeSessionStorage |
Детали
__construct(SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null)
Параметры
| SessionHandlerInterface|null | $handler | |
| MetadataBag | $metaBag | MetadataBag |
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 для обсуждения. Поэтому вы должны убедиться, что сгенерированный сеанс сохранён ДО отправки заголовков с новым идентификатором. Symfony's HttpKernel предлагает обработчик для этого. См. Symfony\Component\HttpKernel\EventListener\SaveSessionListener. В противном случае данные сеанса могут быть потеряны снова для одновременных запросов с новым идентификатором. Одним из результатов может быть выход из системы сразу после входа в систему.
Параметры
| bool | $destroy | Уничтожить сеанс при пересоздании? |
| int | $lifetime | Устанавливает срок действия cookie сеанса. Значение null оставит системные настройки без изменений, 0 задаст cookie для истечения срока действия при сеансе браузера. Время в секундах, и не является меткой времени Unix. |
Значение возврата
| 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.
Параметры
| MetadataBag | $metaBag |
MetadataBag getMetadataBag()
Получает MetadataBag.
Значение возврата
| MetadataBag |
bool isStarted()
Проверяет, начат ли сеанс.
Значение возврата
| bool | True, если начат, false в противном случае |
setOptions(array $options)
Устанавливает переменные ini session.*.
Для удобства мы опускаем 'session.' с начала ключей. Явно игнорирует другие ключи ini.
Параметры
| array | $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/3.4/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.html