Spec-Zone.ru › Symfony 3.1

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 сессии.

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 о начале сессии до того, как 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_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="

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

Параметры

bool $destroy Уничтожить сессию при перегенерации?
int $lifetime Устанавливает срок действия cookie для 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.

Параметры

MetadataBag $metaBag

MetadataBag getMetadataBag()

Получает MetadataBag.

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

MetadataBag

bool isStarted()

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

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

bool True, если начата, иначе false

setOptions(array $options)

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

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

Параметры

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

См. также

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 или используйте обработчики из пакета 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.1/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.html

Spec-Zone.ru

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