BaseAddonModule.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace common\components;
  3. use Yii;
  4. use yii\base\Module;
  5. use common\enums\AppEnum;
  6. use common\helpers\ExecuteHelper;
  7. /**
  8. * Class BaseAddonModule
  9. * @package common\components
  10. * @author jianyan74 <751393839@qq.com>
  11. */
  12. class BaseAddonModule extends Module
  13. {
  14. /**
  15. * 插件名称
  16. *
  17. * @var string
  18. */
  19. public $name;
  20. /**
  21. * 真实应用id
  22. *
  23. * @var string
  24. */
  25. public $app_id;
  26. /**
  27. * @throws \yii\base\InvalidConfigException
  28. * @throws \yii\web\NotFoundHttpException
  29. */
  30. public function init()
  31. {
  32. parent::init();
  33. // 初始化模块
  34. $addon = Yii::$app->services->addons->initParams($this->name);
  35. // 初始化真实应用id
  36. Yii::$app->params['realAppId'] = $this->app_id;
  37. // 初始化命名空间
  38. $this->controllerNamespace = "addons\\$this->name\\$this->app_id\controllers";
  39. // 初始化默认路径
  40. if (!in_array($this->app_id, AppEnum::api())) {
  41. $this->setBasePath("@addons/$this->name/$this->app_id");
  42. }
  43. // 初始化子模块
  44. if (
  45. isset($addon->default_config[Yii::$app->id]['modules']) &&
  46. !empty($addon->default_config[Yii::$app->id]['modules'])
  47. ) {
  48. $this->setModules($addon->default_config[Yii::$app->id]['modules']);
  49. }
  50. if (!empty($addon['bootstrap'])) {
  51. ExecuteHelper::map($addon['bootstrap'], 'run', $addon);
  52. }
  53. }
  54. }
粤ICP备19079148号