From 8dce21799fa32ac1b6921ead5e75e90f698eefe4 Mon Sep 17 00:00:00 2001 From: Guan Xiying Date: Tue, 18 Oct 2022 16:28:10 +0800 Subject: [PATCH] * Optimize the codes of loadModel function. --- framework/base/control.class.php | 8 ++++---- framework/base/model.class.php | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/framework/base/control.class.php b/framework/base/control.class.php index 7ea4882f38..0a74fdc745 100644 --- a/framework/base/control.class.php +++ b/framework/base/control.class.php @@ -281,7 +281,7 @@ class baseControl if(isset($loadedModels[$type][$appName][$moduleName])) { $this->$objectName = $loadedModels[$type][$appName][$moduleName]; - $this->dao = $this->$objectName->dao; + if($type == 'model') $this->dao = $this->$objectName->dao; return $this->$objectName; } @@ -314,9 +314,9 @@ class baseControl * 初始化model对象,在control对象中可以通过$this->$objectName来引用。同时将dao对象赋为control对象的成员变量,方便引用。 * Init the model object thus you can try $this->$objectName to access it. Also assign the $dao object as a member of control object. */ - $loadedModels[$appName][$moduleName] = new $modelClass($appName); - $this->$objectName = $loadedModels[$appName][$moduleName]; - $this->dao = $this->$objectName->dao; + $this->$objectName = new $modelClass($appName); + if($type == 'model') $this->dao = $this->$objectName->dao; + $loadedModels[$type][$appName][$moduleName] = $this->$objectName; return $this->$objectName; } diff --git a/framework/base/model.class.php b/framework/base/model.class.php index 116b9e15b3..6529dcdf0a 100644 --- a/framework/base/model.class.php +++ b/framework/base/model.class.php @@ -221,6 +221,7 @@ class baseModel $modelFile = $this->app->setModelFile($moduleName, $appName, $type); if(!helper::import($modelFile)) return false; + $modelClass = class_exists('ext' . $appName . $moduleName. $type) ? 'ext' . $appName . $moduleName . $type : $appName . $moduleName . $type; if(!class_exists($modelClass)) { @@ -228,8 +229,8 @@ class baseModel if(!class_exists($modelClass)) $this->app->triggerError(" The $type $modelClass not found", __FILE__, __LINE__, $exit = true); } - $loadedModels[$type][$appName][$moduleName] = new $modelClass($appName); - $this->$objectName = $loadedModels[$type][$appName][$moduleName]; + $this->$objectName = new $modelClass($appName); + $loadedModels[$type][$appName][$moduleName] = $this->$objectName; return $this->$objectName; }