laravel/frameworkのv7.18.0がリリースされました。追加された機能について確認します。
Illuminate\Http\Client\PendingRequestクラスにwithMiddleware()メソッドが追加されました (#33315, b718d3a)
LaravelのHTTPクライアント(Httpファサード)に独自のミドルウェアが追加できるようになりました。
通信内容の確認、検査等が柔軟に行えるようになりました。
HTTPリクエストをDebugBarで追跡する例:
$client = new \Illuminate\Http\Client\PendingRequest();
$debugBar = new \DebugBar\StandardDebugBar();
// Get data collector.
$timeline = $debugBar->getCollector('time');
// Wrap the timeline.
$profiler = new \GuzzleHttp\Profiling\Debugbar\Profiler($timeline);
$client->withMiddleware(new \GuzzleHttp\Profiling\Middleware($profiler));
$client->send('GET', 'https://httpbin.org/status/200');
var_dump($timeline->collect());
Illuminate\View\ComponentAttributeBagクラスにMacroableトレイトが追加されました (#33354)
.クラス内の文字列が空では無いことを判定します。
Illuminate\View\ComponentAttributeBagクラスにfilter()、whereStartsWith()、thatStartWith()メソッドが追加されました (0abe2db, 07ee3e8)
作成される属性の情報を部分的に取り出せるようになりました。
$bag = new ComponentAttributeBag(['class' => 'font-bold', 'name' => 'test']);
$this->assertSame('class="font-bold"', (string) $bag->whereStartsWith('class'));
Illuminate\Database\Eloquent\CollectionクラスにtoQuery()メソッドが追加されました (#33356, b718d3a)
CollectionからQueryBuilderへの変換ができるようになりました。
複数のレコードを更新したい場合に利用すると便利です。
Illuminate\View\ComponentAttributeBagクラスにfirst()メソッドが追加されました (#33358, 731b94f)
作成される属性の先頭を取り出せるようになりました。
$bag = new ComponentAttributeBag(['class' => 'font-bold', 'name' => 'test']);
$this->assertSame('font-bold', (string) $bag->whereStartsWith('class')->first());
スケジュールで使用できるパターンが追加されました (#33379)
以下の3つのメソッドが追加されました。
everyTwoMinutes()
everyThreeMinutes()
everyFourMinutes()
それぞれ2分毎、3分毎、4分毎に実行するメドッドです。
$schedule->job(SyncSomething::class)->cron('*/2 * * * *'); // every 2 minutes
// or, with this PR
$schedule->job(SyncSomething::class)->everyTwoMinutes();
詳しい変更については以下を確認してください。
Release v7.18.0 · laravel/framework · GitHub