NativeSessionStorage
class NativeSessionStorage implements SessionStorageInterface
Это базовый класс для хранения атрибутов сессии.
Методы
| __construct(array $options = array(), SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null) В зависимости от того, как вы хотите, чтобы работал драйвер хранения, вы, вероятно, захотите полностью переопределить этот конструктор. | ||
| AbstractProxy|SessionHandlerInterface | 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) Устанавливает переменные ini session.*. | ||
| setSaveHandler(SessionHandlerInterface|null $saveHandler = null) Регистрирует обработчик сохранения сессии как обработчик PHP сессии. |
Подробности
__construct(array $options = array(), SessionHandlerInterface|null $handler = null, MetadataBag $metaBag = null)
В зависимости от того, как вы хотите, чтобы работал драйвер хранения, вам, вероятно, придётся полностью переопределить этот конструктор.
Список параметров для массива $options со значениями по умолчанию.
Параметры
| Массив | $options | Параметры конфигурации сессии |
| SessionHandlerInterface|null | $handler | |
| MetadataBag | $metaBag | MetadataBag |
См. также
| http://php.net/session.configuration | для параметров, но мы опускаем «session.» в начале ключей для удобства. («auto_start» не поддерживается, поскольку он сообщает PHP о запуске сессии до того, как PHP начнёт выполнять код пользовательского уровня. Установка во время выполнения не имеет эффекта). cache_limiter, «» (используйте «0», чтобы полностью предотвратить отправку заголовков). cache_expire, «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|SessionHandlerInterface getSaveHandler()
Возвращает экземпляр обработчика сохранения.
Значение результата
| AbstractProxy|SessionHandlerInterface |
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.
Параметры
| array | $options | Массив директив ini сессии (ключ => значение) |
См. также
| http://php.net/session.configuration |
setSaveHandler(SessionHandlerInterface|null $saveHandler = null)
Регистрирует обработчик сохранения сессии как обработчик сессии PHP.
Для использования внутренних обработчиков сохранения сессий PHP, переопределите этот метод, используя iniset с session.savehandler и session.save_path, например:
ini_set('session.save_handler', 'files');
ini_set('session.save_path', '/tmp');
или передайте экземпляр \SessionHandler, который настраивает session.save_handler в конструкторе, для шаблона см. NativeFileSessionHandler или используйте обработчики в пакете composer drak/native-session
Параметры
| 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.4/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.html