编程

Laravel 13 即将发布:新特性一览。

5 2026-03-03 18:19:00

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:

VersionPHP (*)发布事件漏洞修复安全修复
108.1 - 8.3February 14th, 2023August 6th, 2024February 4th, 2025
118.2 - 8.4March 12th, 2024September 3rd, 2025March 12th, 2026
128.2 - 8.5February 24th, 2025August 13th, 2026February 24th, 2027
138.3 - 8.5Q1 2026Q3 2027Q1 2028

Laravel 12 发布于,2025 年 2 月 24 日,将持续接收:

  • 漏洞修复直到 2026 年 8 月 13 日
  • 安全修复直到 2027 年 2 月 24 日

更新到 Laravel 13

 

 

下一篇