smartSessions

Расширенное управление сессиями MODX
Версия 1.2.0-pl
Дата выпуска 29.02.2024
Загрузки 289
Просмотры 3 675
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.6 !
Внимание, smartSessions создан для MODX 2 и не поддерживает MODX 3. Для MODX 3 существует похожее дополнение ExtSession.

Компонент smartSessions расширяет стандартный обработчик сессий modSessionHandler, добавляя следующую информацию к записям сессий:
  • user_agent
  • user_id — если пользователь авторизован
  • ip — ip адрес
  • is_bot — если user_agent принадлежит боту

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

Установка

1. Установите пакет из репозитория
2. В системной настойке session_handler_class поставьте значение smartSessionHandler
3. проверьте, что данные начали собираться в таблицу modx_smart_sessions. При этом таблица modx_sessions больше не используется, ее можно очистить.

Настройки

smartsessions_bot_signatures — список сигнатур поисковых ботов, разделенных вертикальной чертой, для поиска типа LIKE по полю user_agent. Добавьте сюда ботов, которые часто посещают ваш сайт.

smartsessions_bots_gc_maxlifetime — время жизни сессий ботов, указанных в настройке smartsessions_bot_signatures. Уменьшая его вы уменьшите срок хранения сессий ботов и сократите размер таблицы с сессиями.

smartsessions_empty_user_agent_gc_maxlifetime — время жизни сессий с пустым User-Agent. Как правило его можно сделать таким же как и для ботов.

smartsessions_authorized_users_gc_maxlifetime — время жизни сессий авторизованных пользователей. Вы можете увеличить его
и сделать значение больше, чем в настройке session_gc_maxlifetime.

Пример сценария настройки компонента:
session_gc_maxlifetime — стандартное значение 604800 (7 дней);
smartsessions_bots_gc_maxlifetime — 10800, сессии ботов хранятся 3 часа и занимают минимум места в базе;
smartsessions_empty_user_agent_gc_maxlifetime — 10800, сессии с пустым User-Agent хранятся 3 часа и занимают минимум места в базе;
smartsessions_authorized_users_gc_maxlifetime — 2592000, сессии авторизованных пользователей хранятся 30 суток.

Полезное

SQL запрос для просмотра количества сессий, сгруппированных по user_agent:
SELECT `user_agent`, COUNT(*) 
FROM `modx_smart_sessions` 
GROUP BY `user_agent` 
ORDER BY `COUNT(*)` DESC



Подробнее о компоненте modx.pro/components/22098

1.2.0-pl

  • Добавлен столбец is_bot в таблицу modx_smart_sessions
  • Оптимизация скорости работы
  • Возврат настройки session_handler_class на стандартное значение при удалении пакета

1.1.2-pl

  • Исправлен баг с сохранением сессий с длинным ip

1.1.1-pl

  • Добавлен en лексикон
  • Добавлено управление сессиями с пустым User-Agent
  • В настройку bot_signatures добавлены еще несколько сигнатур

1.0.5-pl

  • Исправлена ошибка создания сессий для пользователей с длинным (>255 символов) User Agent

1.0.4-pl

  • Исправлена критичная ошибка при удалении старых сессий

1.0.3-pl

  • Изменения в установщике. Удален резолвер, который мог при удалении компонента удалить системные файлы MODX.

1.0.2-pl

  • Исправлена опечатка в классе smartSessionHandler

1.0.1-pl

  • Отдельное управление сессиями авторизованных пользователей

1.0.0-rc

  • Отдельное управление сессиями ботов
  • Автоматическое создание класс smartSessionHandler в директории /core/model/modx/

1.0.0-beta

  • First release.
  • Added user id, user agent, ip

Последние обсуждения в сообществе MODX.pro