Bitrix - кеширование (Часть 3) - Классы
Войти

Bitrix - кеширование (Часть 3) - Классы

По умолчанию для кэширования в Битрикс-е созданы два класса это CPageCache и CPHPCache.

1
2
3
4
5
6
7
8
<?php 

1. CPHPCache 
// второй для кэширования HTML и PHP переменных.
2. CPageCache -  // служит для кеширования HTML
3. CBitrixComponent /* класс компонента содержащий оптимизированные методы <br> кеширования (StartResultCache) */
CCacheManager -  // класс управления кешем

?>
1. CPhpCache - Методы
1
2
3
4
5
6
7
8
9
<?php 

InitCashe
();  - // функция инициализации кеширования
StartDataCache(); - // старт буферизации, вывод кеша
EndDataCashe(); - // завершение буферизации, сохранение в файл кеша
GetVars(); - // возвращает php переменные, сохраненные в кеше
Output(); - // вывод html cодержимого файла кеша, если тот существует 

?>
Пример
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php 

// Создаем объект
$obCache = new CPHPCache();

// Время жизни кеширования
$cacheLifetime $arParams['CACHE_TIME'];

// Идентификатор
$cacheID $arParams['IBLOCK_ID'] . $arParams['ELEMENT_ID'];

$cachePath "/cache_test/"

if(
$ob_Cache->InitCache($cacheLifetime,$cacheID,$cachePath)){

  
$arVars $obCache->GetVars();
  
$arResult $arVars['arResult'];
  
$obCache->Output();

}
elseif(
$ob_Cashe->StartDataCache()){

  
/*
    Размещаем данные которые необходимо закешировать

  */

  
$ob_cache->EndDataCache(
     array{
       
"arResult" => $arResult
     
}
  );

}

?>
2. CPageCache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php 

# создаем объект
$obCache = new CPageCache;
 
# время кеширования в секундах
$lifeTime 30*60;
 
# формируем ID кеша в зависимости от всех параметров 
# которые могут повлиять на результирующий HTML
$cacheID $arParams['ELEMENT_ID'].$arParams['IBLOCK_TYPE'];
 
# инициализируем буферизирование вывода
if($obCache->StartDataCache($lifeTime$cacheID"/")){
     
#
# Сюда помещается ресурсоёмкий код, с выводом результата
#
     
     
# записываем предварительно буферизированный вывод в файл кеша
$obCache->EndDataCache(); 
}

?>
Теги:
php