| 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()    {    }}
 |