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

EndDataCache

Описание и параметры

CPHPCache::EndDataCache(
	mixed vars = false
)

Выводит буферизированный HTML и сохраняет его на диске вместе с заданным массивом переменных в файл кеша. Нестатический метод.

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

Параметры

ПараметрОписание
vars Массив переменных, значения которых необходимо записать в файл кэша, вида:
array(
	"ИМЯ ПЕРЕМЕННОЙ 1" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 1", 
	"ИМЯ ПЕРЕМЕННОЙ 2" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 2", 
	...
)
Необязательный. По умолчанию - массив переменных предварительно заданный в методе CPHPCache::StartDataCache.

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

<?
// создаем объект
$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;
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024