easy-swoole / http-annotation

Apache License 2.0
7 stars 11 forks source link

解决同个分组,同个方法,不同控制器,左侧菜单方法显示不全的问题 #32

Open Cherry-toto opened 3 years ago

Cherry-toto commented 3 years ago

项目API结构: image

其中:Wechat文件夹下面的两个类,Login.php和Register.php,同个分组, 请求接口分别是: 登录:/api/wechat/login/index 注册:/api/wechat/register/index 文件代码节选: `/**

} /**

}`

API在同个分组,里面请求的同个方法名,但是不同的类里面 最后导致,doc文档左侧菜单只显示一个函数。(easyswoole6群:524475224 有我发的消息截图,此处由于网络问题无法上传图片)

根据分析,我找到对应的方法只需要加上控制器名字进行区分方法,这样就可以避免。

获取控制器名字,且判断是否有配置@controller,如果没有则给他一个默认default

EasySwoole\HttpAnnotation\Utility\AnnotationDoc line:128行 $controllerAnnotation = $objectAnnotation->getController(); if(!$controllerAnnotation){ $controllerName = 'default'; }else{ $controllerName = $controllerAnnotation->value; } line:143行 $groupList[$currentGroupName][$controllerName.'-'.$method->getMethodName()] = $method; line: 148行 标记ID锚点 $html .= "<h2 class='api-method {$currentGroupName}' id='{$currentGroupName}-{$controllerName}-{$methodName}'>{$apiTag->name}{$deprecated}</h2>{$this->CLRF}";