Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Hot And Cold Session: Руководство разработчика», проанализируем лучшие практики и покажем, как правильно использовать cold session в реальных задачах.
—
title: Сессия в разделенном режиме
—
По умолчанию PHP обрабатывает сессии последовательно. Запросы, которые работают с одной сессией, блокируются и выполняются по очереди. Из-за этого пользователи могут столкнуться с задержками. Чтобы решить эту проблему, Bitrix Framework использует разделенный режим сессии.
Основной принцип
Сессия разделяется на две части: hot-данные и cold-данные.
Hot-данные
- Это данные, которые используются при каждом запросе пользователя: аутентификация, авторизация и другие базовые функции. За быстрый и безопасный доступ к информации, необходимой для работы системы, отвечает внутренний механизм Bitrix Framework — KernelSession.
- Hot-данные хранятся в неблокирующей сессии, что позволяет нескольким запросам работать с ними одновременно.
- В качестве хранилища используются зашифрованные cookies. Данные защищены с помощью симметричного алгоритма шифрования.
Cold-данные
- Это остальные данные, которые хранятся в сессии.
- Cold-данные используют обычную блокирующую сессию. Блокировка начинается при первом обращении к таким данным.
- Хранилище может быть реализовано с использованием Redis, Memcache, базы данных или других решений.
- Блокировка сессии зависит от типа и настроек хранилища. При использовании файловой системы она происходит по умолчанию. В случае с Redis или Memcache блокировка может быть настроена иначе. Например, Redis может быть настроен на неблокирующий режим.
Настройка хранения
Для включения разделенного режима сессии измените конфигурационный файл Bitrix Framework /bitrix/.settings.php.
1. Перейдите в папку bitrix/.
2. Откройте файл .settings.php.
3. Измените session [mode] на separated, чтобы включить разделенный режим сессии.
4. Добавьте 'kernel' => 'encrypted_cookies', чтобы hot-данные хранились в зашифрованных cookies.
5. Задайте время жизни сессии lifetime в секундах. Например, 'lifetime' => 14400,то есть 4 часа.
Настройки могут быть переопределены в других конфигурационных файлах, например, в .settings_extra.php.
Примеры настроек можно посмотреть в статье Сессии.
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к cold session, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Hot And Cold Session: Руководство разработчика».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru