StartDataCache
bool CPHPCache::StartDataCache( int TTL = false, string uniq_str = false, mixed initdir = false, array vars = array(), string basedir = "cache" )
The method 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. Non-static method.
Analog method is available in the new core: Bitrix\Main\Data\Cache::startDataCache.
Parameters
Parameter | Description | Available fr om version |
---|---|---|
TTL | cache lifetime, in seconds. Optional. Cache lifetime pre-specified in the InitCache method is used by default. | |
uniq_str | 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 pre-specified in the CPHPCache::InitCache method is used by default. | |
initdir | Directory that stores the component cache, relative to /bitrix/cache/. If "/", the cache is valid for all site directories. Optional. The name of directory specified in the CPHPCache::InitCache method 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 NAME 1", "VARIABLE NAME 2" => "VARIABLE NAME 2", ...)Direct writing into the cache file is performed by the CPHPCache::EndDataCache method. Optional, default value - empty array. | |
basedir | Base cache directory. Default value equals to cache value, i. e. all cache is saved into /BX_PERSONAL_ROOT/cache/ , wh ere BX_PERSONAL_ROOT equals to 'bitrix' by default. |
See Also
Examples of use
<? // 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, then 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; ?>
© «Bitrix24», 2001-2024