Spec-Zone.ru › Symfony 4.0

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API