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