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

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

TestResponseクラスにdumpHeaders()メソッドが追加されました (#28450)

バリデーションルールにends_withが追加されました (#28455)

内部的にはIlluminate\Support\Str::endsWith()が利用されています。

$rules = [
    'email' => 'required|ends_with:laravel.com,jasonmccreary.me',
];

バリデーションメッセージの追加にはresources/lang/en/validation.phpへの追記が必要です。

'ends_with' => 'The :attribute must end with one of the following: :values',

route:listコマンド実行時のcolumnsオプションに複数の値を一度に指定可能になりました (#28459)

--columnsで値を指定することで、表示するカラムの指定が可能です。

// before
php artisan route:list --columns=method --columns=uri --columns=name

// after
php artisan route:list --columns=method,uri,name
php artisan route:list --columns=method --columns=uri,name

SendQueuedMailableSendQueuedNotificationsクラスにretryAfter()メソッドが追加されました (#28484)

Illuminate\Foundation\Console\KernelクラスにscheduleCache()メソッドが追加されました (6587e78)

スケジューリング実行時の内容をキャッシュできるようになりました。

利用するには.envファイルにてSCHEDULE_CACHE_DRIVERでキャッシュ先を指定します。

migrateコマンド実行時の--pathオプションを複数指定可能になりました (#28495)

Tappabletraitクラスが追加されました (#28507)

動作はtap()ヘルパーと同じですが、クラス内のメソッドとして利用する点で可読性がよくなります。

// without tap
$tappable = TappableClass::make();
$tappable->doSomething();
$tappable->doSomethingElse();
$result = $tappable->getResult();

// with tap method
$result = tap(TappableClass::make(), function ($tappable) {
    $tappable->doSomething();
    $tappable->doSomethingElse();
})->getResult();

// with Tappable trait
$result = TappableClass::make()->tap(function ($tappable) {
    $tappable->doSomething();
    $tappable->doSomethingElse();
})->getResult();

リスナーイベントの自動検出機能で参照されるディレクトリが指定可能になりました (#28493)

Illuminate\Foundation\Application::useAppPath()にて指定可能です。

リスナーイベントの自動検出機能はv5.8.9で追加された機能です。

Automatic Event / Listener Discovery - The Laravel Blog

パスワードリセット時のメールアドレス入力欄が自動で挿入されるようになりました (#28475)

PhpRedisConnectionPredisConnectionクラスで複数クラスターのflush dbが可能になりました (f4e8d5c)


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

Release v5.8.17 · laravel/framework · GitHub

© Xzxzyzyz