id; foreach ($models as $model) { $modulePackage = Yii::$app->moduleManager->findOne($model->id); if ($modulePackage === null) { continue; } $class = [ 'class' => $modulePackage->getModuleClass(), 'params' => $modulePackage->getConfig() ]; $this->setModule($model->id, $class); if ($model->bootstrap == '*') { $bootstraps = ['frontend', 'backend', 'api', 'wechat', 'console']; } else { $bootstraps = explode("|", $model->bootstrap); } if (in_array($bootstrapType, $bootstraps)) { $module = \Yii::$app->getModule($model->id); if ($module instanceof BootstrapInterface) { $module->bootstrap($app); } } } } public function setModule($id, $config) { $definitions = \Yii::$app->getModules(); Yii::$app->setModule($id, ArrayHelper::merge($config, array_key_exists($id, $definitions) ? $definitions[$id] : []) ); } }