ホームページ  >  記事  >  PHPフレームワーク  >  Laravel9.35がリリースされました!新しい変更点は何ですか?

Laravel9.35がリリースされました!新しい変更点は何ですか?

藏色散人
藏色散人転載
2022-10-27 16:05:281440ブラウズ

Laravel の次のチュートリアル コラムでは、Laravel 9.35 の最新バージョンでの変更点を紹介します。

Laravel チームはバージョン 9.35 をリリースしました。これには、新しいエキサイティングな代替電子メール構文、Eloquent の「厳密モード」機能などが含まれています。

代替電子メール構文

Taylor Otwell は、「電子メール送信可能なコンテンツとプロパティを指定するコンパクトなオブジェクト」を返すことで、電子メール送信可能な構文を提供しました。

これは彼のプル リクエストの説明の例です:

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 "strict" モード

Chris Morrell と Taylor Otwell が協力して、次の機能をサポートする Eloquent strict モードを開発しました:

    遅延読み込みなし
  • 入力不可能なプロパティを割り当てる場合の例外
  • 未取得または存在しないプロパティにアクセスする場合の例外
開発で厳密モードを使用するには、

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...)。次のリリース ノートは、変更ログから直接取得したものです:

v9.35.0

追加

    リソース ルーティング用に非推奨モデルのロードを許可する (#44405)
  • Illuminate/Database/Eloquent/Model::ShouldBeStrict() およびその他 (#44283)
  • コントローラーを解決しないコントローラー ミドルウェア (#44516)
  • メール可能な構文の選択 (#44462)
修正

    自己参照多対の集合関数 (withSum など) の問題を修正多くの関係 (#44286)
  • 静的クラス プロパティをテンプレート プロパティとして使用する際の問題を修正しました (#44473)
  • 値の列挙では Traversable が JsonSerializable より優先される必要があります (#44456)
  • 修正
  • make :cast --inboundのため、値ではなくブールオプションになります(#44505)
テストを変更します方法。 json_encode を使用してエラー メッセージを読みやすくする (#44397)

Let
    Model::without Timestamps()
  • コールバックの戻り値を返す (#44457)
  • Only古いモデルを関連するルートにロードする (#44478)追加の PHP 拡張機能を shouldBlockPhpUpload 関数に追加する (#44512)
  • 特にノイズの多いオブジェクト用に CutInternals キャスターを登録する (#44514)
  • get メソッドを使用してアプリケーション ロケールにアクセスします (#44521)
  • チャネルから空でない応答のみを返します (09d53ee、3944a3e)
  • 正しいチャネル マッチング (#44531)
  • メールコンポーネントの移行 (#44527)
  • 元のアドレス: https://laravel-news.com/laravel-9-35-0
翻訳アドレス: https ://learnku.com/laravel/t/72658

以上がLaravel9.35がリリースされました!新しい変更点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。