Laravel 13 即将发布:新特性一览。
Laravel 13 是 Laravel 框架下的主版本,预计于 2026 年 3 月发布。此次发布的版本要求使用 PHP 8.3 以上版本,将遵循 Laravel 的标准支持周期,Bug 修复持续到 2027 年 Q3 季度,安全更新持续至 2028 年 Q1 季度。
新特性
PHP 注解支持
PR #58578 引入了 PHP 8 注解(Attribute)作为配置 Laravel 组件类属性的备用方案。这不是一个破坏性更新 —— 现有的基于属性的配置仍然生效。
Eloquent 模型
用于定义模型的 $table、$hidden、$fillable 及其他属性的新注解:
#[Table('users', key: 'user_id', keyType: 'string', incrementing: false)]
#[Hidden(['password'])]
#[Fillable(['name', 'email'])]
class User extends Model {}可用的模型注解:
- #[Appends]
- #[Connection]
- #[Fillable]
- #[Guarded]
- #[Hidden]
- #[Table]
- #[Touches]
- #[Unguarded]
- #[Visible]
队列任务(Job)
队列配置可用在 Job 类上直接定义:
#[Connection('redis')]
#[Queue('podcasts')]
#[Tries(3)]
#[Timeout(120)]
class ProcessPodcast implements ShouldQueue {}可用队列注解:
- #[Backoff]
- #[Connection]
- #[FailOnTimeout]
- #[MaxExceptions]
- #[Queue]
- #[Timeout]
- #[Tries]
- #[UniqueFor]
这些属性也应用到监听器 listener、通知 notification, mailable 及关播事件。
控制台命令
命令可以使用注解而非类属性来定义其签名和描述:
#[Signature('mail:send {user} {--queue}')]
#[Description('Send a marketing email to a user')]
class SendMailCommand extends Command {}其他组件
注解也可用于表单请求(#[RedirectTo], #[StopOnFirstFailure]),API 资源(#[Collects], #[PreserveKeys]),工厂(#[UseModel]) 和测试 seeder (#[Seed], #[Seeder]).
Cache::touch()
PR #55954 添加了一个 Cache::touch() 方法,它扩展了缓存项的 TTL 而无需获取或者重新恢复其值:
// Extend by seconds
Cache::touch('user_session:123', 3600);
// Extend with a DateTime
Cache::touch('analytics_data', now()->addHours(6));
// Extend indefinitely
Cache::touch('report_cache', null);以前,延长 TTL(生存时间)需要先执行 get 操作,再执行 put 操作,这意味着会不必要地通过网络传输缓存的值。Cache::touch() 方法则跳过了这一步——Redis 使用单个 EXPIRE 命令,Memcached 使用 TOUCH,而数据库驱动则发出单个 UPDATE。
该方法成功时返回 true,如果键不存在则返回 false。该方法已在所有缓存驱动中实现:Array、APC、Database、DynamoDB、File、Memcached、Memoized、Null 和 Redis。
PHP 版本要求
Laravel 13 将要求 PHP 8.3 作为最低版本。这比 Laravel 12 的最低 PHP 版本要求 8.2 有所提高。
支持时间线
根据 Laravel 既定的支持政策,Laravel 13 将获得漏洞修复支持直至 2027 年第三季度,并获得安全更新直至 2028 年第一季度:8:
| Version | PHP (*) | 发布事件 | 漏洞修复 | 安全修复 |
|---|---|---|---|---|
| 10 | 8.1 - 8.3 | February 14th, 2023 | August 6th, 2024 | February 4th, 2025 |
| 11 | 8.2 - 8.4 | March 12th, 2024 | September 3rd, 2025 | March 12th, 2026 |
| 12 | 8.2 - 8.5 | February 24th, 2025 | August 13th, 2026 | February 24th, 2027 |
| 13 | 8.3 - 8.5 | Q1 2026 | Q3 2027 | Q1 2028 |
Laravel 12 发布于,2025 年 2 月 24 日,将持续接收:
- 漏洞修复直到 2026 年 8 月 13 日
- 安全修复直到 2027 年 2 月 24 日
更新到 Laravel 13