Example #1
0
 /**
  * <p>Начинает буферизацию выводимого HTML, либо выводит содержимое кеша если он ещё не истек. Если файл кеша истек, то метод возвращает "true", в противном случае - "false". Динамичный метод.</p>
  *
  *
  * @param int $TTL = false Время жизни кеша в секундах.<br> Необязательный. По умолчанию -
  * время жизни кеша предварительно заданное в методе <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/initcache.php">InitCache</a>.
  *
  * @param string $uniq_str = false Уникальный идентификатор кеша. В этот идентификатор должны
  * входить все параметры которые могут повлиять на результат
  * исполнения кешируемого кода.<br> Необязательный. По умолчанию -
  * уникальный идентификатор кеша предварительно заданный в методе
  * <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/initcache.php">CPHPCache::InitCache</a>.
  *
  * @param mixed $initdir = false Папка, в которой хранится кеш компонента, относительно
  * <i>/bitrix/cache/</i>. Если значение - "/", то кеш будет действительным для
  * всех каталогов сайта.<br> Необязательный. По умолчанию - имя
  * каталога предварительно заданное в методе <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/initcache.php">CPHPCache::InitCache</a>.
  *
  * @param array $vars = array() Массив переменных, которые необходимо закешировать, вида: <pre>array(
  * "ИМЯ ПЕРЕМЕННОЙ 1" =&gt; "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 1", "ИМЯ ПЕРЕМЕННОЙ 2" =&gt;
  * "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 2", ...)</pre> Непосредственно запись переменных
  * в файл кеша осуществляется методом <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/enddatacache.php">CPHPCache::EndDataCache</a>.<br>
  * Необязательный. По умолчанию - пустой массив.
  *
  * @param string $basedir = "cache" Базовая директория кеша. По умолчанию равен <b>cache</b>, то есть все
  * сохраняется в <code>/BX_PERSONAL_ROOT/cache/</code>, где BX_PERSONAL_ROOT по умолчанию
  * равен bitrix.
  *
  * @return bool 
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * // создаем объект
  * $obCache = new CPHPCache; 
  * 
  * // время кеширования - 30 минут
  * $life_time = 30*60; 
  * 
  * // формируем идентификатор кеша в зависимости от всех параметров 
  * // которые могут повлиять на результирующий HTML
  * $cache_id = $ELEMENT_ID.$SECTION_ID.$USER-&gt;GetUserGroupString(); 
  * 
  * // если кеш есть и он ещё не истек, то
  * if($obCache-&gt;InitCache($life_time, $cache_id, "/") :
  *     // получаем закешированные переменные
  *     $vars = $obCache-&gt;GetVars();
  *     $SECTION_TITLE = $vars["SECTION_TITLE"];
  * else :
  *     // иначе обращаемся к базе
  *     $arSection = GetIBlockSection($SECTION_ID);
  *     $SECTION_TITLE = $arSection["NAME"];
  * endif;
  * 
  * // добавляем пункт меню в навигационную цепочку
  * $APPLICATION-&gt;AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);
  * 
  * // начинаем буферизирование вывода
  * if(<b>$obCache-&gt;StartDataCache</b>()):
  * 
  *     // выбираем из базы параметры элемента инфо-блока
  *     if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
  *         echo "&lt;pre&gt;"; print_r($arIBlockElement); echo "&lt;/pre&gt;";
  *     endif;
  * 
  *     // записываем предварительно буферизированный вывод в файл кеша
  *     // вместе с дополнительной переменной
  *     $obCache-&gt;EndDataCache(array(
  *         "SECTION_TITLE"    =&gt; $SECTION_TITLE
  *         )); 
  * endif;
  * ?&gt;
  * </pre>
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;LESSON_ID=3485"
  * >Кеширование</a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/enddatacache.php">CPHPCache::EndDataCache</a> </li> <li>
  * <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/navstringforcache.php">CDBResult::NavStringForCache</a>
  * </li> </ul><a name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/startdatacache.php
  * @author Bitrix
  */
 public function StartDataCache($TTL = false, $uniq_str = false, $initdir = false, $vars = array(), $basedir = "cache")
 {
     $narg = func_num_args();
     if ($narg <= 0) {
         return $this->cache->startDataCache();
     }
     if ($narg <= 1) {
         return $this->cache->startDataCache($TTL);
     }
     if ($narg <= 2) {
         return $this->cache->startDataCache($TTL, $uniq_str);
     }
     if ($narg <= 3) {
         return $this->cache->startDataCache($TTL, $uniq_str, $initdir);
     }
     return $this->cache->startDataCache($TTL, $uniq_str, $initdir, $vars, $basedir);
 }