Задать вопрос
@webdefvika
SMM специалист

Почему не работает кэширование CPHPCache?

Помогите понять почему не работает кэширование методам InitCache класса CPHPCache. Пробовала закэшировать вывод списка инфоблоков из базы, но заметила что кэширование вообще не работает. Точнее не работает метод InitCache. Он всегда возвращает false В чем может быть причина?

Здесь у меня совсем простой код, на проверку работы класса кэширования, по нему видно, что кеширования не происходит.

$cache_id = serialize($arParams); 
$obCache = new CPHPCache; 

if ($obCache->InitCache(3600, $cache_id, '/')) { // тянем данные если они есть
   $arResult = $obCache->GetVars(); 
} 
elseif ($obCache->StartDataCache()) { // иначе запишем для того, чтобы следующий раз получить 
   $arResult = rand(0,100);  
   $obCache->EndDataCache($arResult); 
} 

var_dump($arResult);


var_dump($arResult) всегда возвращает разные значения хотя должен возвращать первое закэшированное случайное число! $obCache->InitCache всегда возвращает false
  • Вопрос задан
  • 814 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Яндекс Практикум
    Вайбкодинг
    2 месяца
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 1
rpsv
@rpsv
нормально делай, нормально будет
Третий параметр измените (вместо / название директории 'randnumbers'). Вот дока подробнее: https://dev.1c-bitrix.ru/api_d7/bitrix/main/data/c...

Отключили кеширование компонента. Если у вас кеш в компоненте включен, то смысла дополнительное кешировать внутри - нет.

Убедитесь что у вас нет в запросе ?clear_cache=Y
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы