发布说明
版本控制方案
Laravel 及其其他官方包遵循 语义化版本控制 (Semantic Versioning)。框架主版本每年发布一次(约在第一季度),而次要版本和补丁版本可能每周发布。次要版本和补丁版本绝不包含破坏性变更。
在您的应用程序或包中引用 Laravel 框架或其组件时,应始终使用版本约束(例如 ^13.0),因为 Laravel 的主版本更新确实包含破坏性变更。不过,我们始终致力于确保您能在一天或更短的时间内完成向新主版本的升级。
命名参数
命名参数 不在 Laravel 的向后兼容性指南涵盖范围内。为了改进 Laravel 代码库,我们可能会在必要时重命名函数参数。因此,在调用 Laravel 方法时使用命名参数应谨慎,并需理解参数名称在未来可能会发生变化。
支持政策
对于所有 Laravel 版本,错误修复提供 18 个月的支持,安全修复提供 2 年的支持。对于所有附加库,仅最新的主版本接收错误修复。此外,请查阅 Laravel 支持的数据库版本。
| 版本 | PHP (*) | 版本 | 错误修复至 | 安全修复至 |
|---|---|---|---|---|
| 10 | 8.1 - 8.3 | 2023 年 2 月 14 日 | 2024 年 8 月 6 日 | 2025 年 2 月 4 日 |
| 11 | 8.2 - 8.4 | 2024 年 3 月 12 日 | 2025 年 9 月 3 日 | 2026 年 3 月 12 日 |
| 12 | 8.2 - 8.5 | 2025 年 2 月 24 日 | 2026 年 8 月 13 日 | 2027 年 2 月 24 日 |
| 13 | 8.3 - 8.5 | 2026 年第一季度 | 2027 年第三季度 | 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,为文本生成、工具调用智能体、嵌入 (Embeddings)、音频、图像和向量存储集成提供了统一的 API。
借助 AI SDK,您可以构建与提供商无关的 AI 功能,同时保持一致的 Laravel 原生开发体验。
例如,可以通过单个调用来提示一个基础智能体
1use App\Ai\Agents\SalesCoach;2 3$response = SalesCoach::make()->prompt('Analyze this sales transcript...');4 5return (string) $response;
Laravel AI SDK 还可以生成图像、音频和嵌入
对于视觉生成用例,SDK 提供了一个简洁的 API,用于根据普通语言提示创建图像
1use Laravel\Ai\Image;2 3$image = Image::of('A donut sitting on the kitchen counter')->generate();4 5$rawContent = (string) $image;
对于语音体验,您可以为助手、旁白和辅助功能将文本合成为自然发音的音频
1use Laravel\Ai\Audio;2 3$audio = Audio::of('I love coding with Laravel.')->generate();4 5$rawContent = (string) $audio;
对于语义搜索和检索工作流,您可以直接从字符串生成嵌入
1use Illuminate\Support\Str;2 3$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(...) 增加了 基于类的队列路由,允许您在中心位置为特定任务定义默认的队列/连接路由规则
1Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
扩展的 PHP 特性 (Attributes)
Laravel 13 继续在整个框架内扩展对 PHP 特性的原生支持,使常见的配置和行为关注点更具声明性,并与您的类和方法放置在一起。
值得注意的增加包括控制器和授权特性,如 #[Middleware] 和 #[Authorize],以及面向队列的任务控制特性,如 #[Tries]、#[Backoff]、#[Timeout] 和 #[FailOnTimeout]。
例如,控制器中间件和策略检查现在可以直接在类和方法上声明
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Models\Comment; 6use App\Models\Post; 7use Illuminate\Routing\Attributes\Controllers\Authorize; 8use Illuminate\Routing\Attributes\Controllers\Middleware; 9 10#[Middleware('auth')]11class CommentController12{13 #[Middleware('subscribed')]14 #[Authorize('create', [Comment::class, 'post'])]15 public function store(Post $post)16 {17 // ...18 }19}
其他特性也已引入到 Eloquent、事件、通知、验证、测试和资源序列化 API 中,为您在框架的更多领域提供了始终如一的“特性优先”选项。
缓存 TTL 扩展
Laravel 现在包含 Cache::touch(...),允许您延长现有缓存项的 TTL,而无需检索并重新存储其值。
语义 / 向量搜索
Laravel 13 通过原生的向量查询支持、嵌入工作流以及在 搜索、查询 和 AI SDK 中记录的相关 API,加深了其语义搜索的深度。
这些功能使得使用 PostgreSQL + pgvector 构建 AI 驱动的搜索体验变得非常简单,包括针对直接从字符串生成的嵌入进行相似性搜索。
例如,您可以直接从查询构建器运行语义相似性搜索
1$documents = DB::table('documents')2 ->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')3 ->limit(10)4 ->get();