Иногда бывает необходимо закэшировать какие-нибудь данные (а не html), например, результат работы логики компонента, т.е. массив $arResult. Ниже приведен пример использования средств кэширования 1С-Битрикс, имеющий следующие особенности:
- используется 1С-Битрикс-класс CPHPCache
- управление кэшированием ведется через стандартные параметры компонента CACHE_TYPE и CACHE_TIME (кэширование включается, когда тип кэширования установлен в "Авто+Управляемое", что соответствует значению 'A' в коде включения компонента)
- кэш зависит от всех параметров массива $_GET
- кэш хранится в папке /bitrix/cache/my_component_name/
$useCache = ($arParams["CACHE_TYPE"] == 'A'); $cacheValid = false; if($useCache) { $cachedResult = new CPHPCache(); $cacheId = ""; foreach($_GET as $key => $val) $cacheId.=$key.$val; $cacheValid = $cachedResult->InitCache(intval($arParams["CACHE_TIME"]), $cacheId, "/my_component_name"); if($cacheValid) $arResult = $cachedResult->GetVars(); } if(!$useCache || !$cacheValid) // либо кэш отключен, либо нет действительного кэша { /* * Тут заполняется массив $arResult и формируется флаг $success, равный true, * если результат сформирован успешно или false, если возникла ошибка и кэшировать * результат не имеет смысла */ if($success && $useCache) { // сохранить в кэше массив $arResult $cachedResult->StartDataCache(); $cachedResult->EndDataCache($arResult); } }
Здравствуйте!
ОтветитьУдалитьИнтересует сотрудничество. Берете ли вы задачи на аутсорс?
Заранее спасибо!
Добрый вечер!
УдалитьСпасибо за предложение, но подработка меня на данный момент не интересует.