Laravel 9.44 Released
The Laravel team released 9.44 this week with Vite 4 support, per-channel notification connection config, native rename/drop for all database drivers, and more:
Doctrine is not required to rename/drop columns
Hafez Divandari contributed native support for renaming and dropping columns on all databases supported by Laravel. The pull request description has a table that will help you determine if you need doctrine/dbal to support renaming and dropping columns.
Per-notification queue connection configuration
James Hemery contributed the ability to specify a queue connection on a per-notification channel basis. You can do so by defining a viaConnections()
method that returns each notification channel's key/value pair and the connection it should use.
/**
* Determine which connections should be used for each notification channel.
*
* @return array
*/
public function viaConnections()
{
return [
'mail' => 'redis',
'database' => 'sync',
];
}
See Customizing The Notification Queue Connection section of the notifications documentation for full details!
HTTP client "throw if" Closure support
Günther Debrauwer contributed passing a Closure to the HTTP client throwIf() method. Previously, only a boolean was supported, but now you can customize the logic to determine if you should throw an exception:
Http::throwIf(fn ($response) => $response->status() !== 404)
->get('https://laravel.com/foo');
Http::get('https://laravel.com/foo')
->throwIf(fn ($response) => $response->status() !== 404);
Vite 4.0
Tim MacDonald added Vite 4 support to Jetstream, Breeze, and the Vite Plugin. If you create a new Laravel application or install any of the above, you'll start with Vite 4! To learn more, read Vite 4.0 is out! by the Vite team.
Release Notes
You can see the complete list of new features and updates below and the diff between 9.43.0 and 9.44.0 on GitHub. The following release notes are directly from the changelog:
Added
- Added
Illuminate/Auth/GuardHelpers::forgetUser()
(#45208) - Added sort option for schedule:list (#45198)
- Added
ascii
andulid
validation rules (#45218) - Http client - allow to provide closure as "throwif" condition (#45251)
- Support '/' as a possible column name in database (#45268)
- Added Granular notifications queue connections (#45264)
- Add support for native rename/drop column commands (#45258)
- Add $encoding parameter to substr method (#45300)
- Use Macroable in Session facade (#45310)
Fixed
- Fixed aliasing with cursor pagination (#45188)
- Fixed email verification request (#45227)
- Return 500 http error, instead of 200, when dotenv fails to load (#45235)
- Fixed bug on Job Batchs Table (#45263)
- Fixed schedule:list crash when call() is given class-string (#45306)
- Fixed Lack of Memory when failing a job with wrong variable passed on the method fail() (#45291)
- Fixed errors occurring when encrypted cookies has been tampered with (#45313)
- bug fix, change array_merge to array_replace to prevent reindex (#45309)
Changed
- Allow BusFake to use custom BusRepository (#45202)
- Improved error logging for unmatched routes and route not found (#45206)
- Improve assertSeeText and assertDontSeeText test methods (#45274)
- Improved
Illuminate/Auth/SessionGuard::clearUserDataFromStorage()
(#45305) - Allows shouldIgnoresDeprecationError() to be overriden (#45299)