bool CPHPCache::StartDataCache( int cache_life_time = false, string cache_id = false, mixed init_dir = false, array vars = array() )
The method StartDataCache starts the buffered HTML output, or emits the cache content if it is not expired yet. If the cache file is expired the function returns true, or false otherwise.
| Parameter | Description |
|---|---|
| cache_life_time | Cache time to live, in seconds. Optional. Cache lifetime specified in the InitCache function is used by default. |
| cache_id | A unique cache ID. This ID must contain all the parameters which may
affect the result of cached code execution. Optional. The unique cache ID specified in the CPHPCache::InitCache function is used by default. |
| init_dir | The name of directory for which the cache is valid. If
"/", the cache is valid for all site directories. Optional. The name of directory specified in the CPHPCache::InitCache function is used by default. |
| vars | An array of variables which are to be cached. Array should be in the
following format:array( "VARIABLE NAME 1" => "VARIABLE VALUE 1", "VARIABLE NAME 2" => "VARIABLE VALUE 2", ...)The variables to be written to the cache file are flushed to disc by the CPHPCache::EndDataCache function. Optional. The default value is an empty array. |
<?
// create an object
$obCache = new CPHPCache;
// caching time - 30 minutes
$life_time = 30*60;
// form the cache ID according to all parameters
// which may affect the resulting HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString();
// if the cache exists and is not expired...
if($obCache->InitCache($life_time, $cache_id, "/") :
// obtain cached variables
$vars = $obCache->GetVars();
$SECTION_TITLE = $vars["SECTION_TITLE"];
else :
// otherwise call the database
$arSection = GetIBlockSection($SECTION_ID);
$SECTION_TITLE = $arSection["NAME"];
endif;
// add a menu item to the navigation chain
$APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);
// start buffered output
if($obCache->StartDataCache()):
// obtain the information block element parameters from the database
if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
endif;
// write the preliminary buffered output to the cache file
// together with an additional variable
$obCache->EndDataCache(array(
"SECTION_TITLE" => $SECTION_TITLE
));
endif;
?>
| © 2001-2005 Bitrix | Bitrix Site Manager - Content Management & Portal Solutions |