#php #session #phpredis
#php #сессия #phpredis
Вопрос:
Есть ли способ расширить обработчик phpredis session.save для вызова функции при сборке мусора?
ini_set('session.save_handler','redis');
//code to set an additional gc function
session_start();
Я хочу добавить дополнительный шаг очистки для моего сеанса. Данные, которые я хочу очистить, являются временными файлами в базе данных.
Если невозможно расширить phpredis, есть ли способ написать функцию, которая использует для имитации сборки мусора сеанса с приведенными ниже настройками ini?
session.gc_probability = 1
session.gc_divisor = 100
Ответ №1:
Вот что я придумал
$gc_probability = ini_get('session.gc_probability');
$gc_divisor = ini_get('session.gc_divisor');
$probability = $gc_probability/$gc_divisor;
$random_float_between_0_and_1 = mt_rand() / mt_getrandmax();
if ($random_float_between_0_and_1 <= $probability)
{
$this->cleanup_expired_files();
}