MockFileSessionStorage
class MockFileSessionStorage extends MockArraySessionStorage
MockFileSessionStorage используется для имитации сессий при функциональном тестировании в одном процессе PHP.
PHP сессия фактически не запускается, так как сессия может быть инициализирована и закрыта только один раз за цикл выполнения PHP, и этот класс не загрязняет глобальные переменные, связанные с сессиями, включая функции session_*() или директивы PHP ini session.*.
Методы
| __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null) Конструктор. | ||
| setSessionData(array $array) Устанавливает данные сессии. | из MockArraySessionStorage | |
| bool | start() Запускает сессию. | |
| bool | regenerate(bool $destroy = false, int $lifetime = null) Перегенерирует идентификатор, представляющий это хранилище. | |
| string | getId() Возвращает идентификатор сессии. | из MockArraySessionStorage |
| setId(string $id) Устанавливает идентификатор сессии. | из MockArraySessionStorage | |
| mixed | getName() Возвращает имя сессии. | из MockArraySessionStorage |
| setName(string $name) Устанавливает имя сессии. | из MockArraySessionStorage | |
| save() Принудительно сохраняет и закрывает сессию. | ||
| clear() Очищает все данные сессии в памяти. | из MockArraySessionStorage | |
| registerBag(SessionBagInterface $bag) Регистрирует SessionBagInterface для использования. | из MockArraySessionStorage | |
| SessionBagInterface | getBag(string $name) Получает SessionBagInterface по имени. | из MockArraySessionStorage |
| bool | isStarted() Проверяет, запущена ли сессия. | из MockArraySessionStorage |
| setMetadataBag(MetadataBag $bag = null) Устанавливает MetadataBag. | из MockArraySessionStorage | |
| MetadataBag | getMetadataBag() Получает MetadataBag. | из MockArraySessionStorage |
Подробности
__construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
Конструктор.
Параметры
| string | $savePath | Путь к каталогу для сохранения файлов сессии. |
| string | $name | Имя сессии |
| MetadataBag | $metaBag | Экземпляр MetadataBag. |
setSessionData(array $array)
Устанавливает данные сессии.
Параметры
| array | $array |
bool start()
Инициализирует сессию.
Значение возврата
| bool | True, если сессия инициирована. |
Исключения
| RuntimeException | Если возникла ошибка при инициализации сессии. |
bool regenerate(bool $destroy = false, int $lifetime = null)
Пересоздаёт идентификатор, представляющий данное хранилище.
Этот метод должен вызывать sessionregenerateid($destroy), если интерфейс используется для объекта хранения, предназначенного для тестирования в среде unit или функционального тестирования, где реальная сессия PHP может конфликтовать с тестированием.
Обратите внимание: regenerate+destroy не должно очищать данные сессии в памяти, только удалять данные сессии из постоянного хранилища.
Внимание: При перегенерации идентификатора сессии в проектировании сессии PHP нет блокировки. См. https://bugs.php.net/bug.php?id=61470 для обсуждения. Поэтому необходимо убедиться, что сгенерированная сессия сохранена ДО отправки заголовков с новым идентификатором. Symfonys HttpKernel предлагает слушателя для этого. См. Symfony\Component\HttpKernel\EventListener\SaveSessionListener. В противном случае данные сессии могут быть потеряны снова при одновременных запросах с новым идентификатором. Одним результатом может стать выход из системы сразу после входа.
Параметры
| bool | $destroy | Уничтожить сессию при перегенерации? |
| int | $lifetime | Устанавливает срок действия cookie сессии. Значение null оставит системные настройки неизменными, 0 установит cookie на истечение с сессией браузера. Время в секундах, не является Unix-временем. |
Значение возврата
| bool | True, если сессия пересоздана, false в случае ошибки |
Исключения
| RuntimeException | Если при перегенерации возникла ошибка |
string getId()
Возвращает идентификатор сессии.
Значение возврата
| string | Идентификатор сессии или пустая строка. |
setId(string $id)
Устанавливает идентификатор сессии.
Параметры
| string | $id |
mixed getName()
Возвращает имя сессии.
Значение возврата
| mixed | Имя сессии. |
setName(string $name)
Устанавливает имя сессии.
Параметры
| string | $name |
save()
Вынужденное сохранение и закрытие сессии.
Этот метод должен вызывать sessionwriteclose(), если интерфейс используется для объекта хранения, предназначенного для тестирования в среде unit или функционального тестирования, где реальная сессия PHP может конфликтовать с тестированием, в противном случае он должен фактически сохранять данные сессии, если это необходимо.
Исключения
| RuntimeException | Если сессия сохраняется без инициализации или если сессия уже закрыта. |
clear()
Очищает все данные сессии в памяти.
registerBag(SessionBagInterface $bag)
Регистрирует SessionBagInterface для использования.
Параметры
| SessionBagInterface | $bag |
SessionBagInterface getBag(string $name)
Получает SessionBagInterface по имени.
Параметры
| string | $name |
Значение возврата
| SessionBagInterface |
Исключения
| InvalidArgumentException | Если пакета нет |
bool isStarted()
Проверяет, запущена ли сессия.
Значение возврата
| bool | True, если запущена, иначе false. |
setMetadataBag(MetadataBag $bag = null)
Устанавливает MetadataBag.
Параметры
| MetadataBag | $bag |
MetadataBag getMetadataBag()
Возвращает MetadataBag.
Значение возврата
| MetadataBag |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.html