Spec-Zone.ru › Symfony 2.8

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 getMetadataBag()

Получает MetadataBag.

bool isStarted()

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

setOptions(array $options)

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

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" lazy_write, "1" 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), если этот интерфейс не используется для объекта хранилища, предназначенного для тестирования на единицу или функционального тестирования, где реальная 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 Если возникла ошибка при перегенерации этого хранилища

save()

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

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

Исключения

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

clear()

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

registerBag(SessionBagInterface $bag)

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

Параметры

SessionBagInterface $bag

SessionBagInterface getBag(string $name)

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

Параметры

string $name

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

SessionBagInterface

Исключения

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

setMetadataBag(MetadataBag $metaBag = null)

Параметры

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, например:

ini_set('session.save_handler', 'files');
ini_set('session.save_path', '/tmp');

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

Параметры

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

Spec-Zone.ru

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