Задать вопрос
@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
  • Вопрос задан
  • 740 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
Третий параметр измените (вместо / название директории 'randnumbers'). Вот дока подробнее: https://dev.1c-bitrix.ru/api_d7/bitrix/main/data/c...

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

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

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

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