/** * * @return \hass\module\models\Module */ public function getModel() { if ($this->_model == null) { $model = Model::findOne($this->getPackage()); if ($model == null) { $model = new Model(); $model->loadDefaultValues(); $model->package = $this->getPackage(); $model->id = $this->id; $model->bootstrap = $this->bootstrap ?: ModuleManager::BOOTSTRAP_BACKEND; $model->class = $this->getEntityClass(); } $this->_model = $model; } return $this->_model; }
public function loadBootstrapModules($bootstrapType) { $modules = \hass\module\models\Module::findEnabledModules(); $regModules = \Yii::$app->getModules(); /** @var \hass\module\models\Module $model */ foreach ($modules as $model) { $model = (object) $model; $class = null; if (isset($regModules[$model->id])) { //是对象的话,说明绝对引导过了,配置高于程序中定义的 if (is_object($regModules[$model->id])) { continue; } // 如果有模块,而且模块的类存在,配置文件优先 if (isset($regModules[$model->id]['class'])) { $class = $regModules[$model->id]['class']; } } //模块类未设置的话 if ($class == null) { if (empty($model->class)) { continue; } Util::setModule($model->id, ['class' => $model->class]); } $bootstraps = explode("|", $model->bootstrap); if (in_array($bootstrapType, $bootstraps)) { /** @var \hass\module\BaseModule $module */ $module = \Yii::$app->getModule($model->id); if ($module instanceof BootstrapInterface) { $module->bootstrap(\Yii::$app); } } } }
public function loadBootstrapModules($bootstrapType) { $modules = \hass\module\models\Module::findEnabledModules(); /** @var \hass\module\models\Module $model */ foreach ($modules as $model) { $model = (object) $model; if (empty($model->class)) { continue; } // 如果有模块,而且模块的类存在则跳过,配置文件优先 if (\Yii::$app->hasModule($model->id)) { $modules = \Yii::$app->getModules(); if (is_object($modules[$model->id]) || isset($modules[$model->id]['class'])) { continue; } } Util::setModule($model->id, ['class' => $model->class]); $bootstraps = explode("|", $model->bootstrap); if (in_array($bootstrapType, $bootstraps)) { /** @var \hass\module\BaseModule $module */ $module = \Yii::$app->getModule($model->id); if ($module instanceof BootstrapInterface) { $module->bootstrap(\Yii::$app); } } } }