diff --git a/app/service/PluginsAdminService.php b/app/service/PluginsAdminService.php index c43605f57..d0890572e 100755 --- a/app/service/PluginsAdminService.php +++ b/app/service/PluginsAdminService.php @@ -166,6 +166,14 @@ class PluginsAdminService $config = self::GetPluginsConfig($plugins); if(!empty($config) && !empty($config['base']) && !empty($config['base']['name'])) { + // 插件前置事件 + $ret = PluginsService::PluginsEventCall($plugins, 'BeginInstall', $params); + if(!empty($ret) && isset($ret['code']) && $ret['code'] != 0) + { + return $ret; + } + + // 添加处理 $cache = PluginsService::PluginsCacheData($plugins); $data = [ 'name' => $config['base']['name'], @@ -1470,6 +1478,13 @@ php; return DataReturn('应用不存在['.$params['plugins_value'].']、请先安装', -1); } + // 插件前置事件 + $ret = PluginsService::PluginsEventCall($params['plugins_value'], 'BeginUpgrade', $params); + if(!empty($ret) && isset($ret['code']) && $ret['code'] != 0) + { + return $ret; + } + // 包处理 $ret = self::PluginsPackageHandle($package_file, 1, $params['plugins_value']); if($ret['code'] != 0) diff --git a/app/service/PluginsService.php b/app/service/PluginsService.php index 43d382726..50e644fc3 100755 --- a/app/service/PluginsService.php +++ b/app/service/PluginsService.php @@ -399,7 +399,15 @@ class PluginsService * @version 1.0.0 * @date 2020-01-02 * @param [string] $plugins [应用标记] - * @param [string] $action [事件方法(Upload 上传, Install 安装, Uninstall 卸载, Download 下载, Upgrade 更新, Delete 删除)] + * @param [string] $action [事件方法( + * Upload 上传 + * BeginInstall 安装前(验证返回状态) + * Install 安装 + * Uninstall 卸载 + * Download 下载 + * BeginUpgrade 更新前(验证返回状态) + * Upgrade 更新 + * Delete 删除)] * @param [array] $params [输入参数] */ public static function PluginsEventCall($plugins, $action, $params = []) @@ -408,7 +416,7 @@ class PluginsService $plugins = '\app\plugins\\'.$plugins.'\\Event'; if(!class_exists($plugins)) { - return DataReturn('应用事件未定义['.$plugins.']', -1); + return DataReturn('应用事件未定义['.$plugins.']', 0); } // 调用方法 @@ -416,7 +424,7 @@ class PluginsService $obj = new $plugins($params); if(!method_exists($obj, $action)) { - return DataReturn('应用事件方法未定义['.$action.']', -1); + return DataReturn('应用事件方法未定义['.$action.']', 0); } // 调用方法仅传递请求参数 @@ -424,7 +432,12 @@ class PluginsService { $params = $params['data_request']; } - return DataReturn('调用成功', 0, $obj->$action($params)); + $ret = $obj->$action($params); + if(!empty($ret) && is_array($ret) && array_key_exists('code', $ret) && array_key_exists('data', $ret) && array_key_exists('msg', $ret)) + { + return $ret; + } + return DataReturn('调用成功', 0, $ret); } /**