StartDataCache
Описание и параметры
bool CPHPCache::StartDataCache( int TTL = false, string uniq_str = false, mixed initdir = false, array vars = array(), string basedir = "cache" )
Начинает буферизацию выводимого HTML, либо выводит содержимое кеша если он ещё не истек. Если файл кеша истек, то метод возвращает "true", в противном случае - "false". Нестатический метод.
В новом ядре имеет аналог: Bitrix\Main\Data\Cache::startDataCache.
Параметры
Параметр | Описание | С версии |
---|---|---|
TTL | Время жизни кеша в секундах. Необязательный. По умолчанию - время жизни кеша предварительно заданное в методе InitCache. | |
uniq_str | Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кешируемого кода. Необязательный. По умолчанию - уникальный идентификатор кеша предварительно заданный в методе CPHPCache::InitCache. | |
initdir | Папка, в которой хранится кеш компонента, относительно /bitrix/cache/. Если значение - "/", то кеш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - имя каталога предварительно заданное в методе CPHPCache::InitCache. | 3.2.9 |
vars | Массив переменных, которые необходимо закешировать, вида:
array( "ИМЯ ПЕРЕМЕННОЙ 1" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 1", "ИМЯ ПЕРЕМЕННОЙ 2" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 2", ... )Непосредственно запись переменных в файл кеша осуществляется методом CPHPCache::EndDataCache. Необязательный. По умолчанию - пустой массив. | |
basedir | Базовая директория кеша. По умолчанию равен cache, то есть все сохраняется в /BX_PERSONAL_ROOT/cache/ , где BX_PERSONAL_ROOT по умолчанию равен bitrix. | 5.1.2 |
Смотрите также
Примеры использования
<? // создаем объект $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