| Current Path : /var/www/element/data/www/greenpr.ru/bitrix3/modules/main/classes/general/ |
| Current File : /var/www/element/data/www/greenpr.ru/bitrix3/modules/main/classes/general/cache_eaccelerator.php |
<?
class CPHPCacheEAccelerator
{
var $sid = "";
function __construct()
{
$this->CPHPCacheEAccelerator();
}
function CPHPCacheEAccelerator()
{
if(defined("BX_CACHE_SID"))
$this->sid = BX_CACHE_SID;
else
$this->sid = "BX";
}
function IsAvailable()
{
return function_exists('eaccelerator_get') && intval(ini_get("eaccelerator.shm_max")) > 0;
}
function clean($basedir, $initdir = false, $filename = false)
{
if(strlen($filename))
{
$basedir_version = eaccelerator_get($this->sid.$basedir);
if($basedir_version === null)
return true;
if($initdir !== false)
{
$initdir_version = eaccelerator_get($basedir_version."|".$initdir);
if($initdir_version === null)
return true;
}
else
{
$initdir_version = "";
}
eaccelerator_rm($basedir_version."|".$initdir_version."|".$filename);
}
else
{
if(strlen($initdir))
{
$basedir_version = eaccelerator_get($this->sid.$basedir);
if($basedir_version === null)
return true;
eaccelerator_rm($basedir_version."|".$initdir);
}
else
{
eaccelerator_rm($this->sid.$basedir);
}
}
return true;
}
function read(&$arAllVars, $basedir, $initdir, $filename, $TTL)
{
$basedir_version = eaccelerator_get($this->sid.$basedir);
if($basedir_version === null)
return false;
if($initdir !== false)
{
$initdir_version = eaccelerator_get($basedir_version."|".$initdir);
if($initdir_version === null)
return false;
}
else
{
$initdir_version = "";
}
$arAllVars = eaccelerator_get($basedir_version."|".$initdir_version."|".$filename);
if($arAllVars === null)
return false;
else
$arAllVars = unserialize($arAllVars);
return true;
}
function write($arAllVars, $basedir, $initdir, $filename, $TTL)
{
$basedir_version = eaccelerator_get($this->sid.$basedir);
if($basedir_version === null)
{
$basedir_version = md5(mt_rand());
if(!eaccelerator_put($this->sid.$basedir, $basedir_version))
return;
}
if($initdir !== false)
{
$initdir_version = eaccelerator_get($basedir_version."|".$initdir);
if($initdir_version === null)
{
$initdir_version = md5(mt_rand());
if(!eaccelerator_put($basedir_version."|".$initdir, $initdir_version))
return;
}
}
else
{
$initdir_version = "";
}
eaccelerator_put($basedir_version."|".$initdir_version."|".$filename, serialize($arAllVars), intval($TTL));
}
function IsCacheExpired($path)
{
return false;
}
}
?>