# 发行说明

- [版本方案](#versioning-scheme)
- [支持策略](#support-policy)
- [Laravel 13](#laravel-13)

<a name="versioning-scheme"></a>
## 版本方案

Laravel 及其所有官方组件遵循 [语义化版本控制](https://semver.org)。框架主版本每年发布一次（约在 Q1），而次要版本和补丁版本可能每周发布一次。次要版本和补丁版本**绝不**包含破坏性变更。

在引用 Laravel 框架或其组件时，应始终使用诸如 `^13.0` 这样的版本约束，因为 Laravel 的主版本可能包含破坏性变更。不过，我们始终努力确保你可以在一天之内完成主版本升级。

<a name="named-arguments"></a>
#### 命名参数

[命名参数](https://www.php.net/manual/en/functions.arguments.php#functions.named-arguments)不受 Laravel 向后兼容性策略的约束。为了改进 Laravel 代码结构，我们可能会在必要时重命名函数参数。因此，在调用 Laravel 方法时使用命名参数应谨慎，并理解参数名称可能会在将来发生变化。

<a name="support-policy"></a>
## 支持策略

对于所有 Laravel 版本，**Bug 修复**提供 **18 个月**的支持，**安全修复**提供 **2 年**的支持。对于所有附加组件库，只有最新的主版本会得到 Bug修复。此外，请查阅 Laravel 文档中[支持的数据库版本](/docs/laravel/13.x/database#introduction)。

<div class="overflow-auto">

| 版本 | 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年3月17日 | 2027年第三季度 | 2028年3月17日 |

</div>

<div class="version-colors">
    <div class="end-of-life">
        <div class="color-box"></div>
        <div>生命周期结束
</div>
    </div>
    <div class="security-fixes">
        <div class="color-box"></div>
        <div>仅提供安全修复</div>
    </div>
</div>



(*) 支持的 PHP 版本

<a name="laravel-13"></a>
## Laravel 13

Laravel 13 延续了 Laravel 的年度发布节奏，重点聚焦 AI 原生工作流、更强的默认设置以及更具表现力的开发者 API。此版本包含第一方 AI 原语、JSON:API 资源、语义 / 向量搜索功能，并在队列、缓存和安全性方面带来了增量改进。

<a name="minimal-breaking-changes"></a>
### 极少的破坏性变更

在此发布周期中，我们的主要精力放在了尽量减少破坏性变更上。相反，我们致力于全年持续交付不破坏现有应用的质量改进。

因此，Laravel 13 在升级所需的工作量上相对较小，同时仍提供了大量的新能力。有鉴于此，大多数 Laravel 应用可以在无需大量修改应用代码的情况下升级到 Laravel 13。

<a name="php-8"></a>
### PHP 8.3

Laravel 13.x 要求最低 PHP 版本为 8.3。

<a name="ai-sdk"></a>
### Laravel AI SDK

Laravel 13 引入了第一方 [Laravel AI SDK](https://laravel.com/ai)，为文本生成、工具调用代理、嵌入、音频、图像和向量存储集成提供了统一的 API。

借助 AI SDK，你可以构建与提供商无关的 AI 功能，同时保持一致的原生 Laravel 开发体验。

例如，一个基本代理可以通过一次调用进行提示：

```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();
```

<a name="json-api"></a>
### JSON:API 资源

Laravel 现在包含第一方 [JSON:API 资源](/docs/laravel/12.x/eloquent-resources#jsonapi-resources)，可轻松返回符合 JSON:API 规范的响应。

JSON:API 资源负责处理资源对象序列化、关系包含、稀疏字段集、链接以及符合 JSON:API 的响应头。

<a name="request-forgery-protection"></a>
### 请求伪造保护

在安全方面，Laravel 的[请求伪造保护](/docs/laravel/12.x/csrf#preventing-csrf-requests)中间件已得到增强并正式命名为 `PreventRequestForgery`，增加了基于来源的请求验证，同时保持与基于令牌的 CSRF 保护兼容。

<a name="queue-routing"></a>
### 队列路由

Laravel 13 通过 `Queue::route(...)` 增加了[按类进行队列路由](/docs/laravel/12.x/queues#queue-routing)的功能，允许你在一个中心位置为特定任务定义默认的队列 / 连接路由规则：

```php
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
```

<a name="php-attributes"></a>
### 扩展的 PHP 属性

Laravel 13 继续在整个框架中扩展第一方 PHP 属性的支持，使常见的配置和行为关注点更具声明性，并与你的类和方法放在一起。

值得注意的新增内容有控制器和授权属性，如 [`#[Middleware]`](/docs/laravel/12.x/controllers#controller-middleware) 和 [`#[Authorize]`](/docs/laravel/12.x/controllers#authorization-attributes)，以及面向队列的任务控制属性，如 [`#[Tries]`](/docs/laravel/12.x/queues#max-job-attempts-and-timeout)、[`#[Backoff]`](/docs/laravel/12.x/queues#dealing-with-failed-jobs)、[`#[Timeout]`](/docs/laravel/12.x/queues#max-job-attempts-and-timeout) 和 [`#[FailOnTimeout]`](/docs/laravel/12.x/queues#failing-on-timeout)。

举个例子，现在你可以直接在类的方法中声明控制器中间件和策略检查了：

```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 中同样可用，这为你提供了一个在框架更多地方可用的属性优先的选择。

<a name="cache-touch"></a>
### 缓存 TTL 扩展

Laravel 引入了 [`Cache::touch(...)`](/docs/laravel/13.x/cache) 方法, 它使你可以延长现有的缓存项目而无需重新检索和存储。

<a name="semantic-search"></a>
### 语义化 /向量搜索

Laravel 13 运用原生支持的向量搜索, Embedding 工作流和 [搜索](/docs/laravel/13.x/search#semantic-vector-search)，[查询](/docs/laravel/13.x/queries#vector-similarity-clauses)和 [AI SDK](/docs/laravel/13.x/ai-sdk#embeddings) 文档中相关的 API 深化其语义搜索功能。

这些功能使得基于 PostgreSQL + `pgvector` 构建 AI 赋能搜索的体验更简洁直接 ，比如对直接从字符串生成的 Embedding 进行相似性搜索。

比如，你可以直接从查询构造器发起语义相似性搜索：

```php
$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')
    ->limit(10)
    ->get();
```

