Добрый день,
Кеширую данные из БД 1С-Битрикс стандартным классом из коробки CPHPCache.
Простой процедурный подход.
function myCache()
{
$obCache = new CPHPCache();
$arResult = array();
if($obCache->InitCache(36000000, 'myCache', '/myCache/'))
{
$vars = $obCache->GetVars();
$arResult = $vars['arResult'];
}
elseif($obCache->StartDataCache())
{
/* запросы к бд */
$obCache->EndDataCache(array('arResult' => $arResult));
}
return $arResult;
}
Данная функция "myCache" содержит параметры, которые применяются в других функциях для обработки данных. Т.е. myCache может вызываться 5-10-15 раз в разных местах.
Проблема возникает после того, как происходить сброс кеша "clear_cache=Y".
Обращение к БД происходит столько раз, сколько раз вызывается функция.
По идеи, при последующем обращении к функции "myCache" кеш должен был сброситься 1 раз, после отдавать данные из кеша. Но видимо наличие переменной "clear_cache=Y" полностью исключает создание кеша.
Есть ли способ избежать постоянного сброса кеша при присутствии get "clear_cache=Y"?
Создать класс и работать с "myCache" в рамках экземпляра вариант, но может есть другое решение...