Skip to content

v0.0.1

Choose a tag to compare

@xyj2156 xyj2156 released this 09 Sep 11:46
· 44 commits to main since this release
1c4047c

Route Forge for ThinkPHP —— route-forge 项目的 ThinkPHP 8 后端适配包(route-forge/thinkphp,PHP ^8.2,topthink/framework ^8.0,MIT)。把 ThinkPHP 命名路由经按层级懒加载的 HTTP 元信息端点暴露给前端,并从真实路由规则树生成 TypeScript 类型。框架无关业务逻辑全部复用 route-forge/common

新增能力

  • 层级分配三通道:路由链式 ->tier()、分组链式 ->tier() 透传(嵌套内层覆盖外层)、config/forge.php 按前缀/中间件(any/all/DNF)批量匹配
  • 五级优先级:显式 ->tier() > 分组透传 > classifier 回调 > 配置匹配 > unassigned 兜底;strict_mode 严格模式
  • 元信息端点 GET /_forge/routes/{level} + 摘要端点 GET /_forge/routes,各层级独立 endpoint_middleware 保护,URI 归一(<id>{id})、methods 归一
  • 路由别名->forgeAlias() 与 config aliases 双通道,宏优先、悬空别名 fail-fast
  • 统一缓存:think Cache 驱动桥接(0=永久映射),app_debug 自动旁路
  • think console 命令route:forge:list(table/JSON、--level/--unassigned/--aliases、别名色标)、route:forge:types(d.ts/--json/--out)、route:forge:clear
  • 内嵌摘要 helper forge_summary()(模板 {:forge_summary()},等价 Laravel @forgeSummary
  • 零侵入适配:不继承、不重绑 think 路由,->tier()/->forgeAlias()Rule::__call 落 option

已知限制(如实说明)

  • 层级合法性在扫描期校验(非定义期 fail-fast);未显式 ->name() 的路由视为未命名,不入元信息
  • 不支持 url_lazy_route=true(延迟解析下规则树不完整,端点/命令 fail-fast 抛清晰异常)
  • v1 不含可视化管理器页面(规划二期)

完整功能规格(框架无关)见 route-forge 文档站。

Full Changelog: 0c66d1e...0.0.1