Skip to content
全部文档

发行说明

版本策略

Laravel 及其其他官方包遵循 语义化版本。框架大版本大约每年发布一次(约第一季度),小版本与补丁版本可能每周都会发布。小版本与补丁版本绝不应包含破坏性变更。

在应用或包中引用 Laravel 框架或其组件时,应始终使用类似 ^13.0 的版本约束,因为 Laravel 大版本确实会包含破坏性变更。不过我们会尽力确保你能在一天甚至更短时间内完成升级。

命名参数

命名参数 不在 Laravel 向后兼容指南的覆盖范围内。我们可能在必要时重命名函数参数以改进代码库。因此,调用 Laravel 方法时使用命名参数应格外谨慎,并明白参数名未来可能变更。

支持策略

所有 Laravel 发行版提供 18 个月的缺陷修复与 2 年的安全修复。对于其他附加库,仅最新大版本会收到缺陷修复。此外,请查阅 Laravel 支持的数据库版本

VersionPHP (*)ReleaseBug Fixes UntilSecurity Fixes Until
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.5March 17th, 2026Q3 2027March 17th, 2028
已终止支持
仅安全修复

(*) 支持的 PHP 版本

Laravel 13

Laravel 13 延续每年发布一次的节奏,聚焦于面向 AI 的工作流、更稳健的默认配置,以及更具表现力的开发者 API。本版本包含官方 AI 基础能力、JSON:API 资源、语义 / 向量搜索,以及队列、缓存与安全方面的增量改进。

极少破坏性变更

本发布周期的重点之一是尽量减少破坏性变更。我们更倾向于在全年持续交付不会破坏现有应用的体验改进。

因此,就升级工作量而言,Laravel 13 相对轻松,同时仍带来大量新能力。大多数 Laravel 应用无需大幅改动业务代码即可升级到 Laravel 13。

PHP 8.3

Laravel 13.x 要求最低 PHP 版本为 8.3。

Laravel AI SDK

Laravel 13 引入了官方 Laravel AI SDK,为文本生成、带工具调用的 agent、嵌入、音频、图像以及向量存储集成提供统一 API。

借助 AI SDK,你可以构建与供应商无关的 AI 功能,同时保持一致、贴合 Laravel 的开发体验。

例如,基础 agent 只需一次调用即可发起提示:

php
use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('Analyze this sales transcript...');

return (string) $response;

Laravel AI SDK 还能生成图像、音频与嵌入:

对于视觉生成场景,SDK 提供简洁 API,可根据自然语言提示创建图像:

php
use Laravel\Ai\Image;

$image = Image::of('A donut sitting on the kitchen counter')->generate();

$rawContent = (string) $image;

对于语音体验,你可以将文本合成为自然语音,用于助手、旁白与无访问性功能:

php
use Laravel\Ai\Audio;

$audio = Audio::of('I love coding with Laravel.')->generate();

$rawContent = (string) $audio;

对于语义搜索与检索工作流,你可以直接从字符串生成嵌入:

php
use Illuminate\Support\Str;

$embeddings = Str::of('Napa Valley has great wine.')->toEmbeddings();

JSON:API 资源

Laravel 现已内置官方 JSON:API 资源,可轻松返回符合 JSON:API 规范的响应。

JSON:API 资源负责资源对象序列化、关联包含、稀疏字段集、链接,以及符合 JSON:API 的响应头。

请求伪造防护

在安全方面,Laravel 的请求伪造防护中间件已增强并正式命名为 PreventRequestForgery,在保留基于令牌的 CSRF 保护兼容性的同时,增加了感知来源的请求校验。

队列路由

Laravel 13 通过 Queue::route(...) 增加了按类路由队列,可在一处为特定任务定义默认队列 / 连接路由规则:

php
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');

扩展的 PHP Attribute

Laravel 13 继续扩展框架内的官方 PHP attribute 支持,使常见配置与行为更声明式,并与类、方法放在一起。

值得关注的新增包括控制器与授权相关 attribute,如 #[Middleware]#[Authorize],以及面向队列任务的控制,如 #[Tries]#[Backoff]#[Timeout]#[FailOnTimeout]

例如,控制器中间件与策略检查现在可以直接声明在类和方法上:

php
<?php

namespace App\Http\Controllers;

use App\Models\Comment;
use App\Models\Post;
use Illuminate\Routing\Attributes\Controllers\Authorize;
use Illuminate\Routing\Attributes\Controllers\Middleware;

#[Middleware('auth')]
class CommentController
{
    #[Middleware('subscribed')]
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(Post $post)
    {
        // ...
    }
}

Eloquent、事件、通知、验证、测试与资源序列化等 API 也新增了更多 attribute,让你在框架更多区域都能采用一致的 attribute 优先写法。

缓存 TTL 延长

Laravel 现已提供 Cache::touch(...),可在不读取并重新存储值的情况下延长已有缓存项的 TTL。

Laravel 13 通过原生向量查询、嵌入工作流及相关 API,深化了语义搜索能力,文档见 搜索查询AI SDK

这些特性使你能轻松基于 PostgreSQL + pgvector 构建 AI 驱动的搜索体验,包括对直接从字符串生成的嵌入进行相似度搜索。

例如,你可以直接通过查询构造器执行语义相似度搜索:

php
$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')
    ->limit(10)
    ->get();