首頁  >  文章  >  php框架  >  Laravel 9.35 發布囉!看看有哪些新變化?

Laravel 9.35 發布囉!看看有哪些新變化?

藏色散人
藏色散人轉載
2022-10-27 16:05:281431瀏覽

以下由Laravel教學專欄為大家介紹關於最新發布的Laravel 9.35版本都有哪些變化,希望對大家有幫助!

Laravel 團隊發布了9.35版本,它有一個新的令人興奮的備用郵件語法、一個Eloquent的 「嚴格模式」 功能等。

備用郵件語法

Taylor Otwell 透過傳回 “指定可郵件內容和屬性的精簡物件”,貢獻了一個可郵件語法。

這是他的一個例子 pull request description:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Mail\Mailables\Attachment;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class InvoicePaid extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * 创建一个邮件实例
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * 获取邮件信封
     *
     * @return \Illuminate\Mail\Mailables\Envelope
     */
    public function envelope()
    {
        return new Envelope(
            subject: 'Invoice Paid',
            cc: [new Address('foo@example.com', 'Example Name')],
            tags: [],
            metadata: [],
        );
    }

    /**
     * 获取邮件内容定义
     *
     * @return \Illuminate\Mail\Mailables\Content
     */
    public function content()
    {
        return new Content(
            view: 'html-view-name',
            text: 'text-view-name',
        );
    }

    /**
     * 获取邮件的附件
     *
     * @return \Illuminate\Mail\Mailables\Attachment[]
     */
    public function attachments()
    {
        return [
            Attachment::fromPath('/path/to/file'),
        ];
    }
}

使用build() 定義郵件的傳統方式不會被刪除。我喜歡上面的例子是因為使用 PHP 8 的命名參數更一目了然。

Eloquent 「嚴格」模式

Chris Morrell 和Taylor Otwell 合作開發了Eloquent 嚴格模式,該模式支援以下功能:

  • 沒有延遲載入
  • 指派不可填入屬性時的例外情況
  • 存取未檢索或不存在的屬性的例外狀況

要在開發中使用嚴格模式,方法是將下列內容新增到已註冊服務提供者的boot() 方法中:

Model::shouldBeStrict();

shouldBeStrict() 方法是啟用以下所有功能的捷徑:

Model::preventLazyLoading();
Model::preventSilentlyDiscardingAttributes();
Model::preventsAccessingMissingAttributes();

使用資源路由載入廢棄模型

Andrew Brown 提供了使用以下路由語法載入帶有資源路由的廢棄模型的能力:

// 所有终结点
Route::resource('users', UserController::class)->withTrashed();

// 仅`显示`
Route::resource('users', UserController::class)->withTrashed(['show']);

發行說明

你可以在GitHub上看到下面完整的新功能和更新清單以及[9.34.0]和9.35.0](github.com/laravel/framework/compa...) 之間的差異。以下發行說明直接來自 changelog:

v9.35.0

新增

  • 允許為資源路由載入廢棄模型(#44405)
  • #新增到 Illuminate/Database/Eloquent/Model::shouldBeStrict() 和其他(#44283)
  • 沒有解析控制器的控制器中間件(#44516)
  • #選擇可郵寄的語法(#44462)

修正

  • 修正自引用多對多關係中的聚合函數(withSum 等)問題(#44286)
  • 修正了使用靜態類別屬性作為模板屬性的問題(#44473)
  • Traversable 在Enumerate Values 中應該優先於JsonSerializable(#44456)
  • 修復了make :cast --inbound,所以它是一個布林選項,而不是值(#44505)

修改

    ##測試方法。使用json_encode 讓錯誤訊息更具可讀性(#44397)
  • Model::without Timestamps() 傳回回呼的回傳值(#44457)
  • #僅在相關路由上載入廢棄模型(#44478)
  • 向shouldBlockPhpUpload 函數新增額外的PHP 擴充(#44512)
  • 為特別吵雜的物件註冊cutInternals casters (#44514)
  • 使用get 方法存取應用程式區域設定(#44521)
  • 僅傳回來自頻道的非空白回應(09d53ee, 3944a3e)
  • #正確的頻道符合(#44531)
  • 遷移郵件元件(#44527)
原文網址:https://laravel-news.com/laravel-9-35-0

譯文網址:https://learnku.com/laravel/t/72658

以上是Laravel 9.35 發布囉!看看有哪些新變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除