Задать вопрос
@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
  • Вопрос задан
  • 803 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1С-программист
    10 месяцев
    Далее
  • Skillbox
    Профессия Графический дизайнер PRO
    15 месяцев
    Далее
  • ProductStar
    Профессия Product Manager
    10 месяцев
    Далее
Решения вопроса 1
rpsv
@rpsv
нормально делай, нормально будет
Третий параметр измените (вместо / название директории 'randnumbers'). Вот дока подробнее: https://dev.1c-bitrix.ru/api_d7/bitrix/main/data/c...

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

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

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

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