mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-03 06:55:03 +03:00
кеширование функции file_exists при загрузке модулей, актуально при использовании memcache
This commit is contained in:
parent
85abb7b5c7
commit
d90db771bc
|
@ -88,9 +88,9 @@ class Engine extends Object {
|
||||||
protected function LoadModule($sModuleName,$bInit=false) {
|
protected function LoadModule($sModuleName,$bInit=false) {
|
||||||
$tm1=microtime(true);
|
$tm1=microtime(true);
|
||||||
$sPrefixSys='';
|
$sPrefixSys='';
|
||||||
if (file_exists(DIR_SERVER_ROOT."/classes/modules/".strtolower($sModuleName)."/".$sModuleName.".class.php")) {
|
if ($this->isFileExists(DIR_SERVER_ROOT."/classes/modules/".strtolower($sModuleName)."/".$sModuleName.".class.php")) {
|
||||||
require_once(DIR_SERVER_ROOT."/classes/modules/".strtolower($sModuleName)."/".$sModuleName.".class.php");
|
require_once(DIR_SERVER_ROOT."/classes/modules/".strtolower($sModuleName)."/".$sModuleName.".class.php");
|
||||||
} elseif (file_exists(DIR_SERVER_ROOT."/classes/modules/sys_".strtolower($sModuleName)."/".$sModuleName.".class.php")) {
|
} elseif ($this->isFileExists(DIR_SERVER_ROOT."/classes/modules/sys_".strtolower($sModuleName)."/".$sModuleName.".class.php")) {
|
||||||
require_once(DIR_SERVER_ROOT."/classes/modules/sys_".strtolower($sModuleName)."/".$sModuleName.".class.php");
|
require_once(DIR_SERVER_ROOT."/classes/modules/sys_".strtolower($sModuleName)."/".$sModuleName.".class.php");
|
||||||
$sPrefixSys='sys_';
|
$sPrefixSys='sys_';
|
||||||
} else {
|
} else {
|
||||||
|
@ -100,7 +100,7 @@ class Engine extends Object {
|
||||||
* Проверяем наличие кастомного класса
|
* Проверяем наличие кастомного класса
|
||||||
*/
|
*/
|
||||||
$sPrefixCustom='';
|
$sPrefixCustom='';
|
||||||
if (file_exists(DIR_SERVER_ROOT."/classes/modules/".$sPrefixSys.strtolower($sModuleName)."/".$sModuleName.".class.custom.php")) {
|
if ($this->isFileExists(DIR_SERVER_ROOT."/classes/modules/".$sPrefixSys.strtolower($sModuleName)."/".$sModuleName.".class.custom.php")) {
|
||||||
require_once(DIR_SERVER_ROOT."/classes/modules/".$sPrefixSys.strtolower($sModuleName)."/".$sModuleName.".class.custom.php");
|
require_once(DIR_SERVER_ROOT."/classes/modules/".$sPrefixSys.strtolower($sModuleName)."/".$sModuleName.".class.custom.php");
|
||||||
$sPrefixCustom='_custom';
|
$sPrefixCustom='_custom';
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ class Engine extends Object {
|
||||||
*/
|
*/
|
||||||
$sModuleNameClass='Ls'.$sModuleName.$sPrefixCustom;
|
$sModuleNameClass='Ls'.$sModuleName.$sPrefixCustom;
|
||||||
$oModule=new $sModuleNameClass($this);
|
$oModule=new $sModuleNameClass($this);
|
||||||
if ($bInit) {
|
if ($bInit or $sModuleName=='Cache') {
|
||||||
$oModule->Init();
|
$oModule->Init();
|
||||||
}
|
}
|
||||||
$this->aModules[$sModuleName]=$oModule;
|
$this->aModules[$sModuleName]=$oModule;
|
||||||
|
@ -172,6 +172,26 @@ class Engine extends Object {
|
||||||
closedir($hDir);
|
closedir($hDir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Проверяет файл на существование, если используется кеширование memcache то кеширует результат работы
|
||||||
|
*
|
||||||
|
* @param unknown_type $sFile
|
||||||
|
* @return unknown
|
||||||
|
*/
|
||||||
|
public function isFileExists($sFile,$iTime=3600) {
|
||||||
|
if (strpos($sFile,'/Cache.class.')!==false) {
|
||||||
|
return file_exists($sFile);
|
||||||
|
}
|
||||||
|
if (SYS_CACHE_USE and SYS_CACHE_TYPE==SYS_CACHE_TYPE_MEMORY) {
|
||||||
|
if (false === ($data = $this->Cache_Get("file_exists_{$sFile}"))) {
|
||||||
|
$data=file_exists($sFile);
|
||||||
|
$this->Cache_Set((int)$data, "file_exists_{$sFile}", array(), $iTime);
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
} else {
|
||||||
|
return file_exists($sFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Вызывает метод нужного модуля
|
* Вызывает метод нужного модуля
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue