Symfony 8.2 开发中:Lock 属性与 RecorderHttpClient 进入主线,8.1.9 已发布
信息来源为官方周报 A Week of Symfony #1032(2026-10-05~11) 与 官方发布页。
版本线
| 分支 | PHP 要求 | 支持情况 |
|---|---|---|
| 8.1 | 8.4.0+ | 2026-05 首发,2027-01 结束支持 |
| 8.2(开发中) | 8.4.0+ | 计划 2026-11 发布,2027-07 结束支持 |
| 7.4(LTS) | 8.2.0+ | 2025-11 首发,bug 修复到 2028-11,安全修复到 2029-11 |
| 6.4 | 8.1.0+ | bug 修复到 2026-11,安全修复到 2027-11 |
8.1 分支的补丁版本 Symfony 8.1.9 于 2026-10-14 发布。7.4 是当前的长期支持版,6.4 仍在维护队列里,但两条线的维护窗口都已经能看到终点。
8.2 已经落地的部分
官方本周放出了几篇围绕 8.2 的文章,覆盖的功能包括:
- 定向 Cache-Control(targeted Cache-Control);
- 监听器与服务的相对顺序(relative ordering for listeners and services);
- 编译后的事件分发器(compiled event dispatcher);
- 三个新的校验约束(validation constraints);
- 单次使用的签名 URL(single-use signed URLs)。
除此之外,8.2 开发中还引入了:
- 用 PHP attributes 定义 workflow(workflows defined with PHP attributes);
- 新的
Lock属性,用于拒绝或延迟并发请求(a new Lock attribute to reject or delay concurrent requests); RecorderHttpClient,用于录制并回放 HTTP 交互(record and replay HTTP exchanges)。
后两个值得单独看一眼。
Lock 属性把并发控制从方法体挪到了声明位置:控制器方法或服务方法上加一个 attribute,就能表达「同一资源同一时刻只放一个请求进来」或者「拿不到锁就等待/直接拒绝」这两种策略,不再需要在业务代码里手写获取与释放锁的样板逻辑。
RecorderHttpClient 走的是录制—回放路线:先把一次真实的 HTTP 交换记录下来,测试阶段按记录回放。这样依赖外部 HTTP 服务的测试不必真的发请求,也避开了外部服务不可用或响应变化带来的不稳定。
本周 8.2 的 changelog 有若干条目推进。
Symfony CLI
Symfony CLI 发布了 5.22.0 与 5.21.0。CLI 在本地开发时提供 Symfony Local Server。
发布节奏
Symfony 采用基于时间的发布模型:小版本每六个月一次(5 月与 11 月),大版本每两年一次。Symfony 8.2 是 8.1 之后的下一小版本,计划 2026-11 发布。SymfonyCon Warsaw 2026 的议程也在陆续公布。
需要注意,8.2 仍处于开发阶段,上面列出的特性、命名与时间点都可能继续调整,具体以官方 changelog 与文档为准。