Documentation

InitCache

bool
CPHPCache::InitCache(
 int TTL,
 string uniq_str,
 mixed initdir = false,
 string basedir = "cache"
)

The method initializes several properties of the CPHPCache class object. If the cache file is absent or expired, the function will return false, or true otherwise. Non-static method.

Analog method is available in the new core: Bitrix\Main\Data\Cache::initCache.

Parameters

ParameterDescription Available form version
TTL Cache lifetime, in seconds.
uniq_str Unique cache ID. This ID must contain all the parameters which may affect the result of cached code execution.
initdir Directory that store the cache component /bitrix/cache/. If "/", the cache is valid for all site directories.
Optional. Current directory is used by default.
basedir Base cache directory. Equals to cache value by default, i. e. all is saved in the /BX_PERSONAL_ROOT/cache/, where BX_PERSONAL_ROOT equals to 'bitrix' by default.

See Also

  • CPHPCache::Output
  • [link= 6657886]CDBResult::NavStringForCache[/link]

    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-2022
    Up