| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- namespace common\components;
- use Yii;
- use yii\base\Module;
- use common\helpers\ExecuteHelper;
- use common\helpers\AddonHelper;
- use common\enums\AppEnum;
- /**
- * Class BaseAddonModule
- * @package common\components
- * @author qimall
- */
- class BaseAddonModule extends Module
- {
- /**
- * 插件名称
- *
- * @var string
- */
- public $name;
- /**
- * 真实应用id
- *
- * @var string
- */
- public $app_id;
- /**
- * @throws \yii\base\InvalidConfigException
- * @throws \yii\web\NotFoundHttpException
- */
- public function init()
- {
- parent::init();
- // 模块文件是否存在
- $addons_dir = Yii::getAlias('@addons');
- if(!is_dir($addons_dir.'/'.$this->name)) return;
- // 初始化模块
- AddonHelper::initAddon($this->name);
- $addon = Yii::$app->params['addon'];
- // 初始化真实应用id
- Yii::$app->params['realAppId'] = $this->app_id;
- // 初始化命名空间
- $this->controllerNamespace = "addons\\$this->name\\$this->app_id\controllers";
- // 初始化默认路径
- if (!in_array($this->app_id, AppEnum::api())) {
- // 处理封面入口
- // $this->controllerMap['addons'] = 'backend\controllers\AddonsController';
- if (file_exists(Yii::getAlias("@addons/$this->name/$this->app_id"))) {
- $this->setBasePath("@addons/$this->name/$this->app_id");
- }
- }
- // 初始化子模块
- if (
- isset($addon->default_config[Yii::$app->id]['modules']) &&
- !empty($addon->default_config[Yii::$app->id]['modules'])
- ) {
- $this->setModules($addon->default_config[Yii::$app->id]['modules']);
- }
- if (!empty($addon['bootstrap'])) {
- ExecuteHelper::map($addon['bootstrap'], 'run', $addon);
- }
- }
- }
|