Spec-Zone.ru › Symfony 3.2

NativeSessionStorage

class NativeSessionStorage implements SessionStorageInterface

Это базовый класс для хранения атрибутов сессии.

Методы

__construct(array $options = array(), AbstractProxy|NativeSessionHandler|SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null)

Конструктор.

AbstractProxy getSaveHandler()

Получает экземпляр обработчика сохранения.

bool start()

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

string getId()

Возвращает идентификатор сессии.

setId(string $id)

Устанавливает идентификатор сессии.

mixed getName()

Возвращает имя сессии.

setName(string $name)

Устанавливает имя сессии.

bool regenerate(bool $destroy = false, int $lifetime = null)

Перегенерирует идентификатор, представляющий это хранилище.

save()

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

clear()

Очищает все данные сессии в памяти.

registerBag(SessionBagInterface $bag)

Регистрирует SessionBagInterface для использования.

SessionBagInterface getBag(string $name)

Получает SessionBagInterface по имени.

setMetadataBag(MetadataBag $metaBag = null)

Устанавливает MetadataBag.

MetadataBag getMetadataBag()

Получает MetadataBag.

bool isStarted()

Проверяет, начата ли сессия.

setOptions(array $options)

Устанавливает переменные ini сессии session.*.

setSaveHandler(AbstractProxy|NativeSessionHandler|SessionHandlerInterface|null $saveHandler = null)

Регистрирует обработчик сохранения сессии как PHP обработчик сессии.

Подробности

__construct(array $options = array(), AbstractProxy|NativeSessionHandler|SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null)

Конструктор.

В зависимости от того, как вы хотите, чтобы работал драйвер хранения, вам, вероятно, нужно будет полностью переопределить этот конструктор.

Список параметров для массива $options со значениями по умолчанию.

Параметры

Массив $options Параметры конфигурации сессии
AbstractProxy|NativeSessionHandler|SessionHandlerInterface|null $handler
MetadataBag $metaBag MetadataBag

См. также

http://php.net/session.configuration для параметров, но мы опускаем «session.» с начала ключей для удобства. ("auto_start", не поддерживается, так как он сообщает PHP о запуске сессии до начала выполнения кода пользовательского пространства. Установка во время выполнения не оказывает никакого влияния). cache_limiter, "" (используйте "0", чтобы предотвратить отправку заголовков полностью). cookie_domain, "" cookie_httponly, "" cookie_lifetime, "0" cookie_path, "/" cookie_secure, "" entropy_file, "" entropy_length, "0" gc_divisor, "100" gc_maxlifetime, "1440" gc_probability, "1" hash_bits_per_character, "4" hash_function, "0" name, "PHPSESSID" referer_check, "" serialize_handler, "php" use_strict_mode, "0" use_cookies, "1" use_only_cookies, "1" use_trans_sid, "0" upload_progress.enabled, "1" upload_progress.cleanup, "1" upload_progress.prefix, "upload_progress_" upload_progress.name, "PHP_SESSION_UPLOAD_PROGRESS" upload_progress.freq, "1%" upload_progress.min-freq, "1" url_rewriter.tags, "a=href,area=href,frame=src,form=,fieldset=" sid_length, "32" sid_bits_per_character, "5" trans_sid_hosts, $_SERVER['HTTP_HOST'] trans_sid_tags, "a=href,area=href,frame=src,form="

AbstractProxy getSaveHandler()

Возвращает экземпляр обработчика сохранения.

Значение результата

AbstractProxy

bool start()

Запускает сессию.

Значение результата

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

Исключения

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

string getId()

Возвращает идентификатор сессии.

Значение результата

string Идентификатор сессии или пустая строка

setId(string $id)

Устанавливает идентификатор сессии.

Параметры

string $id

mixed getName()

Возвращает имя сессии.

Значение результата

mixed Имя сессии

setName(string $name)

Устанавливает имя сессии.

Параметры

string $name

bool regenerate(bool $destroy = false, int $lifetime = null)

Перегенерирует идентификатор, представляющий это хранилище.

Этот метод должен вызывать sessionregenerateid($destroy), если этот интерфейс используется для объекта хранилища, предназначенного для тестирования в среде unit или функциональных тестов, где реальная PHP сессия будет мешать тестированию.

Примечание: regenerate+destroy не должно очищать данные сессии в памяти, а только удалять данные сессии из постоянного хранилища.

Внимание: При перегенерации идентификатора сессии в конструкции PHP сессии не участвует блокировка. См. https://bugs.php.net/bug.php?id=61470 для обсуждения. Таким образом, вы должны убедиться, что перегенерированная сессия сохранена ДО отправки заголовков с новым идентификатором. HttpKernel Symfony предлагает слушатель для этого. См. Symfony\Component\HttpKernel\EventListener\SaveSessionListener. В противном случае данные сессии могут снова потеряться при одновременных запросах с новым идентификатором. Одним из результатов может быть выход из системы после входа.

Параметры

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

Значение результата

bool True, если сессия перегенерирована, false в случае ошибки

Исключения

RuntimeException Если при перегенерации этого хранилища произошла ошибка

save()

Вынужденное сохранение и закрытие сессии.

Этот метод должен вызвать sessionwriteclose(), если этот интерфейс используется для объекта хранилища, предназначенного для тестирования в unit или функциональных тестах, где реальная PHP сессия будет мешать тестированию, в этом случае он должен реально сохранить данные сессии, если это необходимо.

Исключения

RuntimeException Если сессия сохраняется без запуска, или если сессия уже закрыта.

clear()

Очистить все данные сессии в памяти.

registerBag(SessionBagInterface $bag)

Регистрирует SessionBagInterface для использования.

Параметры

SessionBagInterface $bag

SessionBagInterface getBag(string $name)

Получает SessionBagInterface по имени.

Параметры

string $name

Значение результата

SessionBagInterface

Исключения

InvalidArgumentException Если пакет не существует

setMetadataBag(MetadataBag $metaBag = null)

Устанавливает MetadataBag.

Параметры

MetadataBag $metaBag

MetadataBag getMetadataBag()

Получает MetadataBag.

Значение результата

MetadataBag

bool isStarted()

Проверяет, запущена ли сессия.

Значение результата

bool True, если запущена, false в противном случае

setOptions(array $options)

Устанавливает переменные ini session.*.

Для удобства мы опускаем «session.» с начала ключей. Явно игнорирует другие ключи ini.

Параметры

Массив $options Массив директив ini сессии (ключ => значение)

См. также

http://php.net/session.configuration

setSaveHandler(AbstractProxy|NativeSessionHandler|SessionHandlerInterface|null $saveHandler = null)

Регистрирует обработчик сохранения сессии как обработчик PHP сессии.

Для использования внутренних обработчиков сохранения PHP сессии, переопределите этот метод с помощью iniset с session.savehandler и session.save_path, например:

%%%CODE_BLOCK_0%%

или передайте экземпляр NativeSessionHandler, который настраивает session.save_handler в конструкторе, для шаблона см. NativeFileSessionHandler или используйте обработчики из пакета drak/native-session в composer.

Параметры

AbstractProxy|NativeSessionHandler|SessionHandlerInterface|null $saveHandler

Исключения

InvalidArgumentException

См. также

http://php.net/session-set-save-handler
http://php.net/sessionhandlerinterface
http://php.net/sessionhandler
http://github.com/drak/NativeSession

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.2/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.html

Spec-Zone.ru

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