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

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
Наверх