Skip to content

3.1 up - #45

Merged
tw2066 merged 48 commits into
3.1from
3.1-up
Sep 14, 2026
Merged

tw2066 merged 48 commits into
3.1from
3.1-up

Conversation

@tw2066

@tw2066 tw2066 commented Sep 14, 2026

Copy link
Copy Markdown
Owner

No description provided.

tw2066 added 18 commits April 1, 2026 09:11
- 将 PHP 最低版本要求从 8.1 提升到 8.2
- 移除 composer.json 中对 swagger-php 的兼容性版本约束
- 从 GitHub Actions 测试工作流中移除多个 Hyperf 版本的测试矩阵配置
- 简化了依赖管理以支持最新的 PHP 和相关库版本
- 从 api-docs 仓库的 GitHub Actions 配置中删除 ci31 工作流
- 从 dto 仓库的 GitHub Actions 配置中删除 ci31 工作流
- 保留基于 Hyperf 8.2、8.3 和 8.4 版本的容器化测试环境配置
- 保持现有的 ci32 工作流继续运行在 Ubuntu 最新版本上
- 删除过时的依赖安装和静态分析步骤
- 简化 CI 流程以提高构建效率
- 添加详细的项目架构核心说明
- 更新环境要求至 PHP 8.2 和 Hyperf ~3.2
- 升级 swagger-ui 版本至 5.27.1
- 修正 knife4j 访问路径说明
- 更新 hyperf.wiki 链接至 3.2 版本

feat(swagger): 支持路径参数识别和循环引用处理

- 新增路由路径参数检测功能,仅将路径占位符参数生成为 path 类型
- 实现循环引用类的防无限递归处理机制
- 为非 DTO 扫描类属性提供反射类型兜底方案

test(swagger): 添加参数生成和响应覆盖测试用例

- 创建 GenerateParametersTest 验证路径参数识别
- 添加 GenerateResponsesTest 测试注解优先级覆盖
- 实现循环引用 DTO 测试用例

refactor(swagger): 优化组件初始化和数据合并顺序

- 调整 SwaggerComponents 类初始化顺序防止递归问题
- 修正 ApiResponse 注解与全局配置合并优先级
- 更新参数生成器构造函数注入路由信息
- 将 composer update 命令从 -o 参数更改为 -oW 参数
- 提升依赖更新过程的严格性和一致性
- 移除 composer require 的 -W 参数避免重复约束
- 移除 composer update 的 -W 参数优化执行效率
- 保持依赖安装的一致性配置
- 支持带有空白字符的占位符格式,如 { id }、{id : \d+}
- 更新正则表达式以与 FastRoute 规则对齐
- 保留对原有格式 {id} 和 {id:\d+} 的兼容性
- 引入 FastRoute 解析器替代正则表达式匹配
- 使用标准路由解析器确保与框架路由规则一致性
- 重构 isPathParam 方法提高代码可读性和维护性
- 移除复杂的正则表达式模式匹配逻辑
- 移除不必要的配置选项如 backupGlobals、backupStaticAttributes、verbose 等
- 将 testsuite 标签包装在 testsuites 容器中以符合最新规范
- 保留核心配置如 bootstrap 文件路径、颜色输出和失败停止选项
- 将类方法路径信息从description字段移至x属性中存储
- 移除description字段中的HTML标签拼接逻辑
- 直接使用apiOperation描述覆盖description字段
- 修改BootAppRouteListener.php中的日志记录级别
- 将'swagger not enable'消息从info级别改为debug级别
- 减少生产环境中的冗余日志输出
- 移除不必要的类名缩写处理逻辑
- 直接使用完整类名和方法名构建路径字符串
- 更新方法注释描述
- 修改断言以检查完整的类方法路径格式
- 移除对简短命名空间格式的验证
- 确保测试覆盖Hyperf框架控制器方法的完整路径生成
合并 master 兼容 3.1 的新功能与修复:
- llms.txt AI 文档支持(SwaggerLlms + 路由 + 控制器)
- Scalar 多 server URL、swagger 资源升级 5.32
- operationId 优化(去占位符、含方法名、去重)及 getRouteByOperationId
- 路径参数判断改用 FastRoute 解析器
- knife4j 文件路径穿越安全修复、ApiDocsException 工厂方法
- SwaggerCommon/Components 实例缓存、循环引用防护、代理类属性兜底
- GenerateResponses 注解优先级修正、大量测试与文档

排除 3.2 专属变更:
- composer.json 依赖升级(PHP>=8.2、dto ~3.2、swagger-php ^6、phpstan ^2)
- PHP-Parser v5 适配(GenerateProxyClass 保持 PREFER_PHP7)
- JSON 数组 RequestBody 支持(依赖 dto 3.2 的 MethodParametersManager::getProperty)
- master CI 工作流(保留 3.1 定制版)
@tw2066
tw2066 merged commit de8fc0a into 3.1 Sep 14, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant