版本說明
📝 此頁面為 Laravel 官方文檔的繁體中文翻譯。查看原始英文版本
版本說明
版本控制方案
Laravel 及其其他一方套件遵循語義化版本控制。主要框架版本每年發布一次(約 Q1),而次要和補丁版本可能每週發布一次。次要和補丁版本不應包含破壞性變更。
從您的應用程式或套件引用 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 年 3 月 17 日 | 2027 年 Q3 | 2028 年 3 月 17 日 |
(*) 支援的 PHP 版本
Laravel 13
Laravel 13 延續了 Laravel 的年度發布節奏,專注於 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,為文字生成、工具呼叫代理、嵌入、音訊、圖片和向量儲存整合提供了統一的 API。
使用 AI SDK,您可以建立與供應商無關的 AI 功能,同時保持一致的、Laravel 原生的開發者體驗。
例如,一個基本的代理可以透過單次呼叫進行提示:
use App\Ai\Agents\SalesCoach;
$response = SalesCoach::make()->prompt('分析此銷售記錄...');
return (string) $response;
Laravel AI SDK 還可以生成圖片、音訊和嵌入:
對於視覺生成用例,SDK 提供了一個簡潔的 API,用於從自然語言提示建立圖片:
use Laravel\Ai\Image;
$image = Image::of('一個放在廚房櫃檯上的甜甜圈')->generate();
$rawContent = (string) $image;
對於語音體驗,您可以從文字合成自然語音的音訊,用於助理、旁白和無障礙功能:
use Laravel\Ai\Audio;
$audio = Audio::of('我喜歡使用 Laravel 編寫程式碼。')->generate();
$rawContent = (string) $audio;
對於語義搜尋和檢索工作流程,您可以直接從字串生成嵌入:
use Illuminate\Support\Str;
$embeddings = Str::of('納帕谷有很棒的葡萄酒。')->toEmbeddings();
JSON:API 資源
Laravel 現在包含一方 JSON:API 資源,使得返回符合 JSON:API 規範的響應變得簡單。
JSON:API 資源處理資源物件序列化、關聯包含、稀疏字段集、連結和符合 JSON:API 的響應標頭。
請求偽造保護
為了安全性,Laravel 的請求偽造保護中間件已增強並正式化為 PreventRequestForgery,在保持與基於令牌的 CSRF 保護相容性的同時,添加了來源感知的請求驗證。
佇列路由
Laravel 13 透過 Queue::route(...) 添加了按類別進行佇列路由的功能,允許您在中心位置為特定任務定義預設佇列/連接路由規則:
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
擴展的 PHP 屬性
Laravel 13 繼續在整個框架中擴展一方 PHP 屬性支援,使常見的配置和行為關注點更加聲明式,並與您的類別和方法共置。
值得注意的添加包括控制器和授權屬性,如 #[Middleware] 和 #[Authorize],以及面向佇列的任務控制,如 #[Tries]、#[Backoff]、#[Timeout] 和 #[FailOnTimeout]。
例如,控制器中間件和策略檢查現在可以直接在類別和方法上聲明:
<?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 中也引入了額外的屬性,為您在框架的更多區域提供了一致的屬性優先選項。
快取 TTL 延長
Laravel 現在包含 Cache::touch(...),它允許您在不檢索和重新儲存其值的情況下延長現有快取項目的 TTL。
語義/向量搜尋
Laravel 13 透過原生向量查詢支援、嵌入工作流程以及在 搜尋、查詢和 AI SDK 中記錄的相關 API,深化了其語義搜尋故事。
這些功能使得使用 PostgreSQL + pgvector 建立 AI 驅動的搜尋體驗變得簡單,包括對直接從字串生成的嵌入進行相似性搜尋。
例如,您可以直接從查詢建構器運行語義相似性搜尋:
$documents = DB::table('documents')
->whereVectorSimilarTo('embedding', '納帕谷最好的酒莊')
->limit(10)
->get();