PhpBridgeSessionStorage
class PhpBridgeSessionStorage extends NativeSessionStorage
Позволяет начать сеанс с помощью PHP и управлять им с помощью Symfony.
Свойства
| protected SessionBagInterface[] | $bags | из NativeSessionStorage | |
| protected bool | $started | из NativeSessionStorage | |
| protected bool | $closed | из NativeSessionStorage | |
| protected AbstractProxy|SessionHandlerInterface | $saveHandler | из NativeSessionStorage | |
| protected MetadataBag | $metadataBag | из NativeSessionStorage |
Методы
| __construct(SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null) | ||
| AbstractProxy|SessionHandlerInterface | getSaveHandler() Получает экземпляр обработчика сохранения. | из NativeSessionStorage |
| bool | start() Начинает сеанс. | |
| string | getId() Возвращает идентификатор сеанса. | из NativeSessionStorage |
| setId(string $id) Устанавливает идентификатор сеанса. | из NativeSessionStorage | |
| mixed | getName() Возвращает имя сеанса. | из NativeSessionStorage |
| setName(string $name) Устанавливает имя сеанса. | из NativeSessionStorage | |
| bool | regenerate(bool $destroy = false, int $lifetime = null) Пересоздаёт идентификатор, представляющий это хранилище. | из NativeSessionStorage |
| save() Принудительно сохраняет и закрывает сеанс. | из NativeSessionStorage | |
| clear() Очистить все данные сеанса в памяти. | ||
| registerBag(SessionBagInterface $bag) Регистрирует SessionBagInterface для использования. | из NativeSessionStorage | |
| SessionBagInterface | getBag(string $name) Получает SessionBagInterface по имени. | из NativeSessionStorage |
| setMetadataBag(MetadataBag $metaBag = null) | из NativeSessionStorage | |
| MetadataBag | getMetadataBag() Получает MetadataBag. | из NativeSessionStorage |
| bool | isStarted() Проверяет, запущен ли сеанс. | из NativeSessionStorage |
| setOptions(array $options) Устанавливает переменные ini session.*. | из NativeSessionStorage | |
| setSaveHandler(SessionHandlerInterface|null $saveHandler = null) Регистрирует обработчик сохранения сеанса как обработчик PHP сеанса. | из NativeSessionStorage | |
| loadSession(array $session = null) Загрузить сеанс с атрибутами. | из 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)
Перегенерирует идентификатор, представляющий это хранилище.
Этот метод должен вызвать 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()
Очистка всех данных сессии в памяти.
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.
Параметры
| array | $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 результатом.
Параметры
| array | $session |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.html