2014-08-13

Кеширование в Битриксе своих ключей в result_modifier.php и доступ к ним из component_epilog.php

Часто на проектах встречаю выключенный кеш в Битриксе. В основном, отключение производится программистом из-за непонимания правил работы кеша и нежелания разобраться.
Рассмотрим возможность добавления своих ключей в кеш стандартного компонента (в "result_modifier.php") и получение доступа к этим данным из "component_epilog.php".

Для начала нужно вспомнить как работает шаблон компонента (result_modifier - template - component_epilog). Задание просто своего ключа в $arResult не передастся в эпилог, нужно еще добавить ключ в компонент.
result_modifier.php:
// задаем значение для доступа в шаблоне 
$arResult['test'] = '!!!hello'.time();
// добавляем ключ в кеш компонента 
$this->__component->arResult["test"] = $arResult['test']; 
$this->__component->SetResultCacheKeys( array( "test" ) );
component_epilog.php:
// получаем доступ к своим закешированным данным 
echo $arResult['test'].'world'.time().'!!!';