Лимит записи метаданных сесии

Лимит записи метаданных сесии

По умолчанию, поведение PHP-сессии заключается в том, чтобы сохранять сессию, независимо от того, изменялись ли её данные. В Symfony, каждый раз, когда был доступ к сессии, записаются метаданные (сессия использована/использовалась в последний раз), что можно использовать для определения возраста сессии и времени ожидания.

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

Вы можете сказать Symfony не обновлять время метаданных "сессия была обновлена в последний раз" до того, как прошло определённое количество времени, установив в framework.session.metadata_update_threshold значение в секундах, более нуля:

  • YAML
  • XML
  • PHP
1
2
3
framework:
    session:
        metadata_update_threshold: 120

Note

Поведение PHP по умолчанию - это сохранять сессию независимо от того, изменялась она или нет. При использовании framework.session.metadata_update_threshold, Symfony будет оборачивать обработчик сессии (сконфигурированный в framework.session.handler_id) в WriteCheckSessionHandler. Это предотвратит запись любой сессии, если она не была изменена.

Caution

Имейте в виду, что если сессия не записывается по каждому запросу, то она может подвергнуться "сборке мусра" быстрее, чем обычно. Это означает, что ваши пользователи могут выйти из системы быстрее, чем вы рассчитывали.