123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- /**
- * Created by PhpStorm.
- * User: NODELOG
- * Date: 16/7/20
- * Time: 上午10:25
- */
- namespace common\components;
- use common\models\Module;
- use plugins\Plugin;
- use yii\helpers\Json;
- class PluginManager extends PackageManager
- {
- public $paths = ['@plugins'];
- public $namespace = 'plugins\\';
- public $infoClass = 'Plugin';
- public function install(Plugin $plugin)
- {
- try {
- if ($plugin->install()) {
- $model = $plugin->getModel();
- $model->attributes = $plugin->info;
- $model->config = Json::encode($plugin->getInitConfig());
- $model->status = Module::STATUS_OPEN;
- return $model->save();
- }
- return false;
- } catch(\Exception $e) {
- return false;
- }
- }
- public function uninstall(Plugin $plugin)
- {
- try {
- if ($plugin->uninstall()) {
- $model = $plugin->getModel();
- return $model->delete();
- }
- return false;
- } catch(\Exception $e) {
- return false;
- }
- }
- public function open(Plugin $plugin)
- {
- $model = $plugin->getModel();
- $model->status = 1;
- return $model->save();
- }
- public function close(Plugin $plugin)
- {
- $model = $plugin->getModel();
- $model->status = 0;
- return $model->save();
- }
- public function upgrade()
- {
- }
- }
|