v0.0.1
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()与 configaliases双通道,宏优先、悬空别名 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