[Laravel] 5.8.22がリリースされました

laravel/frameworkのバージョン5.8.22がリリースされました。追加された機能について確認します。

Bladeテンプレートに@componentFirstディレクティブが追加されました (#28783)

Bladeのディレクティブには@component@includeという似たような機能を持つディレクティブがあります。

  • @components@slotsを通してデータを渡すことができます
  • @componentは渡された変数にのみアクセスしますが、@includeは現在定義されているすべての変数にアクセスします。

これらのディレクティブは非常に似ていますが、@includeには便利なバリエーションがあります。

  • @includeWhen
  • @includeIf
  • @includeFirst

@componentFirstを利用することで、@componentの利点を活かしつつ、上記のようなバリエーションを利用できるようになりました。

<div>
    @componentFirst(['missing/file', 'found/file'])
        @slot('title', 'Test Component')
    @endcomponent
</div>

Morphリレーション関係にあるモデルのネスとしたリレーションをEager Loadingで取得可能になりました (#28647, d72e3cd)

  • Commentは、VideoまたはPostとMorph関係にあります
  • PostUserと関係があります
Comment::query()
    ->with(['commentable' => function (MorphTo $morphTo) {
        $morphTo->morphWith(Post::class, ['user']);
    }])
    ->get();

PluralizerクラスにRelatedRecommendedが追加されました (#28749)

Str::containsAll()メソッドが追加されました (#28806)

文字列が引数で与えられた配列の値を全て含んでいることを確認できます。

$this->assertTrue(Str::containsAll('taylor otwell', ['taylor', 'otwell']));
$this->assertTrue(Str::containsAll('taylor otwell', 'taylor'));
$this->assertTrue(Str::containsAll('taylor otwell', ['taylor']));
$this->assertFalse(Str::containsAll('taylor otwell', 'xxx'));
$this->assertFalse(Str::containsAll('taylor otwell', ['taylor', 'xxx']));

メンテナンスモードコマンドのエラー処理が追加されました (#28765, 9e20849)

Laravelでメンテナンスモードの利用にはphp artisan downコマンドを利用します。

このコマンド実行時にはstorage/framework/downにファイルが作成され、このファイルが存在する場合にはメンテナンスモードとして処理されます。

しかし、権限のないユーザーがこのコマンドを実行した際にはファイルが作成されず、エラーメッセージも出力されませんでした。

こういった場合にコンソール上にエラーメッセージが出力されるようになりました。

TestResponse::assertJsonValidationErrors()メソッド利用時のエラーメッセージが指定可能になりました (#28787)

認可機能でリソースのindexに対してviewAny()メソッドで許可可能になりました (#28820)


詳しい変更については以下を確認してください。

Release v5.8.22 · laravel/framework · GitHub

© Xzxzyzyz