Документация для разработчиков

GetVars

array
CPHPCache::GetVars()

Возвращает PHP переменные сохраненные в кеше. Нестатический метод.

В новом ядре имеет аналог: Bitrix\Main\Data\Cache::getVars.

Параметры

Без параметров.

См. также

Примеры использования

<?
// создаем объект
$obCache = new CPHPCache; 

// время кеширования - 30 минут
$life_time = 30*60; 

// формируем идентификатор кеша в зависимости от всех параметров 
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString(); 

// если кэш есть и он ещё не истек то
if($obCache->InitCache($life_time, $cache_id, "/")) :
    // получаем закешированные переменные
    $vars = $obCache->GetVars();
    $SECTION_TITLE = $vars["SECTION_TITLE"];
else :
    // иначе обращаемся к базе
    $arSection = GetIBlockSection($SECTION_ID);
    $SECTION_TITLE = $arSection["NAME"];
endif;

// добавляем пункт меню в навигационную цепочку
$APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

// начинаем буферизирование вывода
if($obCache->StartDataCache()):

    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;

    // записываем предварительно буферизированный вывод в файл кэша
    // вместе с дополнительной переменной
    $obCache->EndDataCache(array(
        "SECTION_TITLE"    => $SECTION_TITLE
        )); 
endif;
?>


Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
2
Александр Kyдин
пример попроще для начинающих:

Код
$cache_id = serialize($arParams); 

$obCache = new CPHPCache; 

if ($obCache->InitCache(3600, $cache_id)) { // тянем данные если они есть
   $arResult = $obCache->GetVars(); 
} 
elseif ($obCache->StartDataCache()) { // иначе запишем для того, чтобы следующий раз получить 
   $arResult = rand(0,100);  
   $obCache->EndDataCache($arResult); 
} 
© «Битрикс», 2001-2018, «1С-Битрикс», 2018
Наверх