Skip to content

版本說明

版本命名方案

Laravel 及其其他第一方套件遵循 Semantic Versioning。框架的主版本每年發布一次(約在第一季),而次要版本和修補版本則可能每週發布。次要版本和修補版本絕不應包含破壞性變更。

當在您的應用程式或套件中引用 Laravel 框架或其元件時,您應該始終使用版本限制(例如 ^13.0),因為 Laravel 的主版本確實包含破壞性變更。然而,我們致力於確保您能在一天或更短的時間內更新到新的主版本。

命名引數

命名引數 (Named arguments) 不在 Laravel 的向後相容性指南範圍內。為了改進 Laravel 的程式碼庫,我們可能會在必要時選擇重新命名函式引數。因此,在呼叫 Laravel 方法時使用命名引數應謹慎行之,並理解參數名稱在未來可能會發生變更。

支援政策

對於所有 Laravel 版本,錯誤修正將提供 18 個月的支援,而安全性修正則提供 2 年。對於所有其他函式庫,只有最新的主版本會收到錯誤修正。此外,請查看 Laravel 支援的 資料庫版本。

版本PHP (*)發布日期錯誤修正至安全性修正至
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 延續了 Laravel 的年度發行節奏,重點在於 AI 原生工作流、更強大的預設值以及更具表達力的開發者 API。此版本包含了第一方的 AI 基礎元件、JSON:API 資源、語義 / 向量搜尋能力,以及在佇列、快取和安全性方面的漸進式改進。

Minimal Breaking Changes

在這次的發行週期中,我們很大一部分的重心在於最小化破壞性變更。相反地,我們致力於在一年之中持續交付不會破壞現有應用程式的品質生活 (quality-of-life) 改進。

因此,就工作量而言,Laravel 13 的版本升級相對較小,但仍提供了實質的新功能。基於此,大多數 Laravel 應用程式可以在不修改太多應用程式程式碼的情況下升級到 Laravel 13。

PHP 8.3

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

Laravel AI SDK

Laravel 13 引入了第一方的 Laravel AI SDK,為文字生成、工具呼叫代理 (tool-calling agents)、嵌入 (embeddings)、音訊、圖像以及向量儲存整合提供統一的 API。

透過 AI SDK,您可以在保持一致且原生的 Laravel 開發體驗的同時,構建與供應商無關 (provider-agnostic) 的 AI 功能。

例如,可以使用單次呼叫來提示一個基礎代理:

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;

對於語音體驗,您可以將文字合成自然 sounding 的音訊,用於助手、旁白和無障礙功能:

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 Resources

Laravel 現在包含了第一方的 JSON:API 資源,讓回傳符合 JSON:API 規範的回應變得簡單直接。

JSON:API 資源處理資源物件的序列化、關聯包含 (relationship inclusion)、稀疏欄位集 (sparse fieldsets)、連結以及符合 JSON:API 規範的回應標頭。

Request Forgery Protection

為了安全性,Laravel 的 請求偽造保護 中介層已得到增強,並正式命名為 PreventRequestForgery,在保留與基於令牌 (token-based) 的 CSRF 保護相容性的同時,增加了對來源感知 (origin-aware) 的請求驗證。

Queue Routing

Laravel 13 透過 Queue::route(...) 增加了 依類別定義的佇列路由,允許您在一個中心位置為特定作業 (jobs) 定義預設的佇列 / 連線路由規則:

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

Expanded PHP Attributes

Laravel 13 繼續擴展框架中對第一方 PHP 屬性 (PHP attribute) 的支援,使常見的配置和行為考量更具宣告性,且能與您的類別和方法共存 (colocated)。

值得注意的新增項目包括控制器和授權屬性,例如 #[Middleware]#[Authorize],以及面向佇列的作業控制,例如 #[Tries]#[Backoff]#[Timeout] 以及 #[FailOnTimeout]

例如,現在可以直接在類別和方法上宣告控制器中介層和策略 (policy) 檢查:

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-first) 選項。

Cache TTL Extension

Laravel 現在包含了 Cache::touch(...),讓您可以在不檢索並重新儲存值的情況下,延伸現有快取項目的 TTL。

Laravel 13 透過原生的向量查詢支援、嵌入工作流以及相關 API 深化了其語義搜尋的功能,相關文件請參閱 搜尋查詢 以及 AI SDK

這些功能讓您能簡單地利用 PostgreSQL + pgvector 構建 AI 驅動的搜尋體驗,包括針對直接從字串生成的嵌入進行相似度搜尋。

例如,您可以直接從查詢構建器 (query builder) 執行語義相似度搜尋:

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