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

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

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

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

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