Spec-Zone.ru › Symfony 4.1

MockFileSessionStorage

class MockFileSessionStorage extends MockArraySessionStorage

MockFileSessionStorage используется для имитации сессий при функциональном тестировании, выполняемом в одном процессе PHP.

PHP сессия фактически не запускается, так как сессия может быть инициализирована и закрыта только один раз за цикл выполнения PHP, и этот класс не загрязняет глобальные переменные, связанные с сессиями, включая функции session_() или директивы ini session.

Свойства

protected string $id из MockArraySessionStorage
protected string $name из MockArraySessionStorage
protected bool $started из MockArraySessionStorage
protected bool $closed из MockArraySessionStorage
protected array $data из MockArraySessionStorage
protected MetadataBag $metadataBag из MockArraySessionStorage
protected array|SessionBagInterface[] $bags из MockArraySessionStorage

Методы

__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) из MockArraySessionStorage
MetadataBag getMetadataBag()

Получает MetadataBag.

из MockArraySessionStorage
string generateId()

Генерирует идентификатор сессии.

из MockArraySessionStorage
loadSession() из MockArraySessionStorage

Детали

__construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)

Параметры

string $savePath Путь к каталогу для сохранения файлов сессии
string $name
MetadataBag $metaBag

setSessionData(array $array)

Параметры

array $array

bool start()

Инициализирует сессию.

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

bool True, если сессия запущена

Исключения

RuntimeException если возникла ошибка при запуске сессии

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 сессии. Значение 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()

Принудительно сохраняет и закрывает сессию.

Этот метод должен вызывать session_write_close(), если этот интерфейс используется для объекта хранилища, предназначенного для тестирования на единицах или функционального тестирования, где реальная сессия 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

protected string generateId()

Генерирует идентификатор сессии.

Это не обязательно должно быть особо криптографически безопасным, так как это просто эмуляция.

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

string

protected loadSession()

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.html

Spec-Zone.ru

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