// class ExpressionCache { static public function GetCachedExpression($sClass, $sAttCode) { // read current cache @include_once (static::GetCacheFileName()); $oExpr = null; $sKey = static::GetKey($sClass, $sAttCode); $sCacheClass = self::GetCacheClassName(); if (class_exists($sCacheClass)) { if (array_key_exists($sKey, $sCacheClass::$aCache)) { $sVal = $sCacheClass::$aCache[$sKey]; $oExpr = unserialize($sVal); } } return $oExpr; } static public function Warmup() { // Store current language $sUserLang = Dict::GetUserLanguage(); $aLanguages = Dict::GetLanguages(); foreach($aLanguages as $sLang => $aLang) { Dict::SetUserLanguage($sLang); $sFilePath = static::GetCacheFileName(); $sCacheClass = self::GetCacheClassName(); if (!is_file($sFilePath)) { $content = << '".serialize($oExpr)."',\n"; } /** * @param $sClass * @param $sAttCode * @return string */ static private function GetKey($sClass, $sAttCode) { return $sClass.'::'.$sAttCode; } public static function GetCacheFileName() { $sLangName = self::GetLangName(); return utils::GetCachePath().'expressioncache-' . $sLangName . '.php'; } /** * @return string */ private static function GetCacheClassName() { $sLangName = self::GetLangName(); $sCacheClass = "ExpressionCacheData$sLangName"; return $sCacheClass; } /** * @return mixed */ private static function GetLangName() { $sLang = Dict::GetUserLanguage(); $sLangName = str_replace(" ", "", $sLang); return $sLangName; } }