Laravel 7.18 Released
Published on by Paul Redmond
The Laravel team released v7.18.0 with an HTTP client middleware method and view component attribute updates, along with the latest new features, fixes, and changes in the 7.x branch:
HTTP withMiddleware
Hannes Van De Vreken contributed a withMiddleware
method to the framework’s HTTP client. It uses Guzzle’s handler stack to push a user-defined middleware to the stack:
$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); // Add middleware to the handler stack$client->withMiddleware(new \GuzzleHttp\Profiling\Middleware($profiler));
View Component Attribute Features
Kevin McKee contributed making the ComponentAttributeBag
macroable. If you’re interested in the benefits I recommend checking out Pull Request #33354 which has the details.
Along with this PR, Taylor Otwell contributed more ComponentAttributeBag
methods, including filter
, whereStartsWith
, and thatStartWith
(an alias of whereStartsWith
):
$this->assertSame('class="font-bold"', (string) $bag->whereStartsWith('class'));
Kevin also contributed a ComponentAttributeBag::first
method to get the first attribute from a ComponentAttributeBag
instance:
{{ $attributes->thatStartWith('wire:model')->first() }}
New Scheduler Frequencies
Sjors Ottjes contributed new scheduling methods to the scheduler (via the ManagesFrequencies
trait) adds some syntactic sugar for one, two, and three minute schedules:
// Before$schedule->job(SyncSomething::class)->cron('*/2 * * * *'); // every 2 minutes // After, new methods$schedule->job(SyncSomething::class)->everyTwoMinutes(); // PR also adds everyThreeMinutes and everyFourMinutes$schedule->job(SyncSomething::class)->everyThreeMinutes();$schedule->job(SyncSomething::class)->everyFourMinutes();
Release Notes
You can see the full list of new features and updates below and the diff between 7.17.0 and 7.18.0 on GitHub.
v7.18.0
Added
- Added
Illuminate\Http\Client\PendingRequest::withMiddleware()
(#33315, b718d3a) - Make ComponentAttributeBag Macroable (#33354)
- Added
filter
andwhereStartsWith
andthatStartWith
toIlluminate\View\ComponentAttributeBag
(0abe2db, 07ee3e8) - Added
Illuminate\Database\Eloquent\Collection::toQuery()
(#33356, 15586fa) - Added
first()
toIlluminate\View\ComponentAttributeBag
(#33358, 731b94f) - Added
everyTwoMinutes()
|everyThreeMinutes()
|everyFourMinutes()
methods toIlluminate/Console/Scheduling/ManagesFrequencies
(#33379)
Fixed
- Fixed
ConfigurationUrlParser
query decoding (#33340) - Fixed exists in
Illuminate\Database\Eloquent\Relations\Concerns\AsPivot::delete()
(#33347)
Changed
- Replace placeholder for dots and asterisks in validator (#33367)