コード例 #1
0
ファイル: ModuleInfo.php プロジェクト: rocketyang/hasscms-app
 /**
  *
  * @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;
 }
コード例 #2
0
 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);
             }
         }
     }
 }
コード例 #3
0
 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);
             }
         }
     }
 }