CPHPCache

CacheEngineFiles — механизм хранения кеша в файлах.

16.06.2016 Bitrix

//$arAllVars	Закешированный результат.
//$baseDir	Базовая директория для кеша (обычно /bitrix/cache).
//$initDir	Директория для кеша без базы.
//$filename	Имя файла.
//$TTL	Период экспирации в секундах.
$arResult = array();
$baseDir = '/bitrix/cache';
$initDir = '/ololo/';
$filename = 'ololo_file.php';
$TTL = 3600;
$strDocumentRoot = \Bitrix\Main\Application::getInstance()->getContext()->getServer()->getDocumentRoot();
$obCahce = new Bitrix\Main\Data\CacheEngineFiles();
//$obCahce->clean($baseDir.$initDir);
echo "<pre style='color:#3ea1ed;'> isCacheExpired <br>";
var_dump($obCahce->isCacheExpired($strDocumentRoot . $baseDir . $initDir . $filename));
echo "</pre>";
echo "<pre style='color:#dd25ed;'>isAvailable <br />";
var_dump($obCahce->isAvailable());
echo "</pre>";
$isKashe = $obCahce->read($arResult, $baseDir, $initDir, $filename, $TTL);
echo "<pre style='color:#dd25ed;'> \$isKashe = ";
var_dump($isKashe);
echo "</pre>";
echo "<pre style='color:#dd25ed;'>getCachePath <br />";
var_dump($obCahce->getCachePath());
echo "</pre>";
echo "<pre style='color:#dd25ed;'>getReadBytes <br />";
var_dump($obCahce->getReadBytes());
echo "</pre>";
if ($isKashe === true) {
    echo "<pre style='color:#008000;'>";
    var_dump($arResult);
    echo "</pre>";
}
if ($isKashe === false) {
    $arAllVars = array(345, 523, 499);
    $obCahce->write($arAllVars, $baseDir, $initDir, $filename, $TTL);
    echo "<pre style='color:#dd25ed;'>getCachePath <br />";
    var_dump($obCahce->getCachePath());
    echo "</pre>";
    echo "<pre style='color:#4427ed;'>getWrittenBytes <br />";
    var_dump($obCahce->getWrittenBytes());
    echo "</pre>";
}
echo "<pre style='color:#ed1886;'>";
var_dump($arResult);
echo "</pre>";
echo "<pre style='color:red;'>";
var_dump(get_class_methods($obCahce));
echo "</pre>";

добавление переменных в component_epilog.php из result_modifier.php

15.08.2013 Bitrix, php скрипты , ,

в result_modifier.php

$this->__component->arResultCacheKeys[] = 'OLOLO';
$arResult['OLOLO'] = 'OLOLO';

в component_epilog.php

var_dump($arResult);

Из result_modifier.php в component_epilog.php

10.01.2013 Bitrix No comments , ,

Для получения всех данных из шаблона в component_epilog.php

result_modifier.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$cp = $this->__component; // объект компонента

if (is_object($cp))
{
   // добавим в arResult компонента два поля - MY_TITLE и IS_OBJECT
   $cp->arResult['arResult'] = $arResult;
   
   $cp->SetResultCacheKeys(array('arResult'));
   // сохраним их в копии arResult, с которой работает шаблон, если модуль main меньше 10.0
   if (!isset($arResult['arResult']))
   {
      $arResult['arResult'] = $cp->arResult['arResult'];
   }
}?>

component_epilog.php

$arResult = $this->arResult['arResult'];

cphpcache bitrix $obCACHE = new CPHPCache; пример 2

03.10.2012 Bitrix No comments ,

$obCACHE = new CPHPCache;
$iCACHE_TIME=3600;
$strCACHE_ID="AreaMaxPlot";
$strCACHE_PATH = "/object.area";
if (isset($_REQUEST['clear_cache']) && $_REQUEST['clear_cache']=="Y"){ $obCACHE->Clean($strCACHE_ID,$strCACHE_PATH); }
if($obCACHE->InitCache($iCACHE_TIME,$strCACHE_ID,$strCACHE_PATH)) 
    {    
        $arrRESULT = $obCACHE->GetVars();
        $arrAreaMaxDat  = $arrRESULT['AreaMaxDat'];
    }else
        {
            $arrAreaMaxDat='test';
        }
 
if($obCACHE->StartDataCache()) {
    $obCACHE->EndDataCache(array("AreaMaxDat"=>$arrAreaMaxDat));
}

bitrix $obCACHE = new CPHPCache; пример

03.10.2012 Bitrix No comments ,

bitrix $obCACHE = new CPHPCache; пример

$obCACHE = new CPHPCache;
$iCACHE_TIME=3600;
$strCACHE_ID="AreaMaxPlot";
$strCACHE_PATH = "/object.area";
if (isset($_REQUEST['clear_cache']) && $_REQUEST['clear_cache']=="Y"){ $obCACHE->Clean($strCACHE_ID,$strCACHE_PATH); }
if($iCACHE_TIME > 0 && $obCACHE->InitCache($iCACHE_TIME,$strCACHE_ID,$strCACHE_PATH)) 
    {    
        $arrRESULT = $obCACHE->GetVars();
        $arrAreaMaxDat  = $arrRESULT['AreaMaxDat'];
    }
if(!is_array($arrAreaMaxDat) || !count($arrAreaMaxDat)){
 $arrAreaMaxDat[] = 'test';
 $obCACHE->StartDataCache($iCACHE_TIME, $strCACHE_ID, $strCACHE_PATH);
 $obCACHE->EndDataCache(array("AreaMaxDat"=>$arrAreaMaxDat));
}