//заготовка
$cacheId = 'catalog_product_list';
$arProducts = getCache($cacheId);
if(!is_array($arProducts)){
// какой-то запрос в бд
$arProducts = \Bitrix\Iblock\ElementTable::getList(array(
'select' => array('ID', 'IBLOCK_ID', 'NAME'),
'filter' => array('IBLOCK_ID' => CATALOG_IBLOCK_ID),
'limit' => 100,
'order' => array('TIMESTAMP_X' => 'ASC')
))->fetchAll();
//добавляем кеш
addCache($cacheId,$arProducts);
}
// example
$cacheId = 'section_block'; // задаем уникальный cacheId
$arrayToSave = ['TEST'=>'Y'];
addCache($cacheId,$arrayToSave);
echo getCache($cacheId);
clearCache($cacheId);
//functions insert to init.php
function getCache($cacheId){
$cache = Bitrix\Main\Data\Cache::createInstance();
if($cache->initCache(72000, $cacheId))
return $result = $cache->getVars();
return false;
}
function addCache($cacheId,$array){
$cache = Bitrix\Main\Data\Cache::createInstance();
$cache->initCache(72000, $cacheId);
$cache->startDataCache();
$cache->endDataCache($array);
return true;
}
function clearCache($cacheId){
$cache = \Bitrix\Main\Application::getInstance()->getManagedCache();
$cache->clean($cacheId);
}
Разработка сайтов