Кеширование Битрикс

  • CPageCache - класс для кеширования HTML
  • CPHPCache - класс для кеширования PHP/HTML

Источник

Сниппет кеширования

bitrix-cache.php
$cache = new CPHPCache();
$cache_time = 3600; // время кеширования в секундах
$cache_id = '$myVal'; // ключ; вариант: 'arIBlockListID'.$cntIBLOCK_List
$cache_path = 'products/catalog/'; // уникальное название, я попросту использую там, где это используется; вариант: 'arIBlockListID'
 
if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path)) {
  $myVal = $cache->GetVars();
}
 
if (!isset($myVal) || !is_array($myVal)) {
  $myVal = heavyFunction(); // получение данных из медленой тяжелой функции
  if ($cache_time > 0) {
    $cache->StartDataCache($cache_time, $cache_id, $cache_path);
    $cache->EndDataCache($myVal);
  }
}

Очистка кеша:

bitrix-clear-cache.php
$cache = new CPHPCache();
$cache->CleanDir('products/catalog/');

Очистка кеша отдельного компонента

bitrix-clear-cache.php
CBitrixComponent::clearComponentCache('vendor:component');