bitrix работа с кешем

Home » Bitrix » bitrix рецепты » bitrix работа с кешем
bitrix рецепты Комментариев нет

Кешировать собственный кусок кода

<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); $obCache = new CPHPCache(); $cacheOn = 1; $cacheLifetime = 60*60; $cacheLifetime = $cacheOn ? $cacheLifetime : 0; $cacheID = 'arSectionTree'; $cachePath = '/'.$cacheID; if($cacheOn && $obCache->InitCache($cacheLifetime, $cacheID, $cachePath) ) { $vars = $obCache->GetVars(); extract($vars); } elseif( $obCache->StartDataCache() ) { CModule::IncludeModule("iblock"); $db = CIBlockSection::GetTreeList(array('IBLOCK_ID' => 6, 'ACTIVE' => 'Y'),array('ID', 'NAME', 'IBLOCK_SECTION_ID')); $arSectionTree = array(); while($arSection = $db->fetch()){ $arSectionTree[(int)$arSection['IBLOCK_SECTION_ID']][] = $arSection; } $obCache->EndDataCache(array('arSectionTree' => $arSectionTree)); }

Если непонятные глюки с инфоблоками в админке

Отключить кеширование типов инфоблока в файле dbconn.php define("CACHED_b_iblock_type", false); define("CACHED_b_iblock", false);

Очистка кеша инфоблока

$GLOBALS['CACHE_MANAGER']->ClearByTag('iblock_id_'.$IBLOCK_ID);