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