新增插件安装及更新前事件

feat/task1-c-wallet
gongfuxiang 2022-08-09 19:06:01 +08:00
parent 098a3bdc2b
commit 6ddfb2255f
2 changed files with 32 additions and 4 deletions

View File

@ -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)

View File

@ -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);
}
/**