123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- /**
- * Created by PhpStorm.
- * User: NODELOG
- * Date: 16/7/2
- * Time: 下午6:12
- */
- namespace common\components;
- use common\models\Plugin as PluginModel;
- use plugins\Plugin;
- use Yii;
- use yii\base\BootstrapInterface;
- use yii\base\Component;
- class LoadPlugin extends Component implements BootstrapInterface
- {
- public function bootstrap($app)
- {
- // 先判断是否安装,没安装不操作~
- if (!file_exists(Yii::getAlias('@root/web/storage/install.txt'))) {
- return;
- }
- $models = PluginModel::findOpenPlugins();
- foreach ($models as $model) {
- /* @var $plugins Plugin*/
- $plugins = Yii::$app->pluginManager->findOne($model->id);
- if ($plugins instanceof BootstrapInterface) {
- $plugins->bootstrap($app);
- }
- // 设置别名
- if (!empty($plugins->aliases)) {
- foreach ($plugins->aliases as $name => $path) {
- Yii::setAlias($name, $path);
- }
- }
- // 如果插件里有模块,加载模块
- /*$moduleClass = $plugins->getNamespace() . '\Module';
- if (class_exists($moduleClass) && $plugins->app == $app->id) {
- $app->setModule($model->id, $moduleClass);
- }*/
- }
- }
- }
|