Spec-Zone.ru › Symfony 2.8

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 Экземпляр MetadataBag

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 для обсуждения. Поэтому необходимо убедиться, что перегенерированный сеанс сохранён ДО отправки заголовков с новым идентификатором. Symfony's HttpKernel предоставляет слушатель для этого. См. Symfony\Component\HttpKernel\EventListener\SaveSessionListener. В противном случае данные сеанса могут быть потеряны снова для одновременных запросов с новым идентификатором. Одним из результатов может быть выход из системы после входа в систему.

Параметры

bool $destroy Уничтожить сеанс при перегенерации?
int $lifetime Устанавливает срок действия cookie сеанса. Значение null оставит системные настройки неизменными, 0 установит cookie так, чтобы он истекал вместе с сеансом браузера. Время в секундах, не является Unix timestamp.

Возвращаемое значение

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/2.7/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.html

Spec-Zone.ru

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