f7cef30b9c
补齐订单、优惠券、主题、插件、公告与支付管理页面, 接入对应后台接口、路由入口与工具层类型定义。 同时修复套餐页开关初始化误写问题,避免浏览即触发写操作。 在订阅协议侧为 Stash 导出增加 AnyTLS 版本守卫, 未知版本或低于 3.3.0 时不再导出该协议,并补充回归测试与知识记录。
1.4 KiB
1.4 KiB
subscription-protocols
职责
- 负责
/sub...订阅入口的客户端识别、协议匹配与最终导出文本生成 - 维护
app/Protocols/*对 Clash / ClashMeta / Stash / General / SingBox 等客户端格式的适配 - 根据
flag、User-Agent与客户端版本信息,对不兼容协议做过滤或降级
行为规范
- 订阅入口以
app/Http/Controllers/V1/Client/ClientController.php为真相源,flag/User-Agent解析结果会决定导出器类 flag=stash走app/Protocols/Stash.php- Stash 的
AnyTLS目前采用保守兼容策略:只有明确拿到客户端版本且版本>= 3.3.0时才导出 - 未知版本优先保证“可导入”,因此会过滤
AnyTLS,避免客户端直接报“不支持 anytls 协议” - 这类兼容修复默认只改目标导出器,不顺带联动其他协议类
依赖关系
- 依赖
ClientController解析flag、User-Agent、types与filter - 依赖
App\Support\AbstractProtocol提供公共过滤与协议抽象 - 依赖
App\Models\Server与App\Services\ServerService提供节点数据
已知限制
- 当前工作区缺少 PHP 运行时与
vendor,本地只能做静态校验,无法直接执行协议导出单元测试 - 其他协议类中的
base_version兼容声明暂未统一梳理;当前仅对用户命中的 Stash AnyTLS 做定点修复