看看 Laravel 9 即將推出什麼

laradocs發表於2021-09-26

原文:A look at what is coming to Laravel 9

前言

Laravel 9 將成為 Laravel 的下一個 LTS 版本,並將在 2022 年初的某個時候釋出。在這篇文章中,我們想概述迄今為止宣佈的所有新功能和更改。

Laravel 9 釋出日期變更

Laravel 9 原定於今年 9 月左右釋出,但 Laravel 團隊決定將此版本推遲到 2022 年 1 月:

Laravel 使用各種社群驅動的包以及九個 Symfony 元件來實現框架內的許多功能。Symfony 6.0將於11月釋出。因此,我們選擇將 Laravel 9.0 的釋出推遲到 2022 年 1 月。
通過推遲釋出,我們可以將我們的底層 Symfony 元件升級到 Symfony 6.0,而不必被迫等到 2022 年 9 月才能執行此升級。 另外,這將使我們更好地應對未來的釋出,因為我們的年度釋出總是在Symfony釋出後兩個月釋出。

這也將推動未來的主要版本,以下是未來的時間表:

  • Laravel 9: 2022 年 1 月
  • Laravel 10: 2023 年 1 月
  • Laravel 11: 2024 年 1 月

PHP 8 是 Laravel 9 中的最低版本

由於 Laravel 9 將需要 Symfony 6.0 並且它的最低版本要求是 PHP 8,這意味著 Laravel 9 將具有相同的限制。

匿名存根遷移

今年早些時候,Laravel 8.37 推出了一個名為匿名遷移的新功能,可以防止遷移類名衝突。

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {

    /**
     * 執行遷移。
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table) {
            $table->string('first_name')->nullable();
        });
    }
};

當 Laravel 9 推出時,這將是你執行 php artisan make:migration 時的預設配置

新的查詢構造器介面

感謝 Chris Morrell,Laravel 9 將擁有一個新的查詢構造器介面,您可以檢視此 合併的 PR 瞭解所有詳細資訊。

對於在IDE中依賴型別提示進行靜態分析、重構或程式碼完成的開發人員來說,Query\BuilderEloquent\BuilderEloquent\Relation 之間缺乏共享介面或繼承可能會非常棘手:

return Model::query()
    ->whereNotExists(function($query) {
        // $query 是一個 Query\Builder
    })
    ->whereHas('relation', function($query) {
        // $query 是一個 Eloquent\Builder
    })
    ->with('relation', function($query) {
        // $query 是一個 Eloquent\Relation
    });

這個特性增加了一個新的 Illuminate\Contracts\Database\QueryBuilder 介面和一個 Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder 特徵,它實現了介面,代替了現有的 __call 實現。

PHP 字串函式

由於 PHP 8 將是最低版本,Tom Schlick 提交了一個 PR 以便在 \Illuminate\Support\Str 類中內部使用 str_contains()str_starts_with()str_ends_with() 函式。

從 SwiftMailer 到 Symfony Mailer

Symfony 棄用了 SwiftMailer 並且 Laravel 9 將更改為使用 Symfony Mailer 進行所有的郵箱傳輸,這確實開啟了一些突破性的變化,你可以 檢視 PR 瞭解所有細節。一旦正式釋出,Laravel 9 升級指南將包含相關說明。

更多…

Laravel 9 還需要幾個月的時間,並且更多的新功能和公告將陸續推出。當這些訊息公佈時,我們會更新這篇文章。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
站在巨人的肩上

相關文章