Сегодня мы с вами рассмотрим функцию которая позволяет без труда кэшировать данные в Bitrix. Это простая функция в которую вы передаёте другую функцию и работа переданной функции кэшируется с помощью базовых методов используемых в Bitrix.
Функция для кэширования
Параметры для функции:
- первый параметр указывает время жизни кэша
- специальный идентификатор кэша
- функция, работа которой должна закэшироваться
function returnResultCache($timeSeconds, $cacheId, $callback, $arCallbackParams = '') {
$obCache = new CPHPCache();
$cachePath = '/'.SITE_ID.'/'.$cacheId;
if( $obCache->InitCache($timeSeconds, $cacheId, $cachePath) ) {
$vars = $obCache->GetVars();
$result = $vars['result'];
// $result["status"] = "это кэш";
}
elseif( $obCache->StartDataCache() ) {
$result = $callback($arCallbackParams);
$obCache->EndDataCache(array('result' => $result));
}
return $result;
}