News

Laravel 10.9 Released

Published
Laravel 10.9 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team has released version 10.9 with several new features and enhancements. Among the changes are named static methods for middleware, new HTTP status assertions for feature testing, and the ability to prune all canceled and unfinished queue batches.

Additionally, Ignition IDE links with work with the artisan serve command, which allows them to open files in their IDE by clicking on the filename displayed on an Ignition error page.

Let's look at the features and changes introduced in Laravel 10.9:

Named Static Methods for Middleware

Tim MacDonald continued enhancing alternative more "PHPish" ways to define route middleware. Here are some examples from Pull Request #46362:

Route::get('users', UserController::class)
->middleware([
Authenticate::class, // default.
Authenticate::using('web'), // specify a guard.
Authenticate::using('web', 'another'), // specify multiple guards.
 
Authorize::using('store', Post::class),
 
EnsureEmailIsVerified::class, // default.
EnsureEmailIsVerified::redirectTo('route.name'),
]);

New HTTP Status Assertions

Miran AL Mehrab contributed three new HTTP status assertions for writing feature tests in Laravel:

$response->assertGone(); // 410
$response->assertInternalServerError(); // 500
$response->assertServiceUnavailable(); // 503

Allow Pruning All Cancelled and Unfinished Queue Batches

James Hulse contributed an update to queue:prune-batches that allows you to prune unfinished and canceled batches with the --infinished=0 and --cancelled=0 flags. Now, the code will check for non-null values. See Pull Request #46833 for more details.

Configure Ignition IDE Links With artisan serve

Niclas contributed the ability to pass-through IGNITION_LOCAL_SITES_PATH to the artisan serve command, which enables you to open files in your IDE by clicking on the filename displayed on an Ignition error page.

See Pull Request #46857 for further details.

Release Notes

You can see the complete list of new features and updates below and the diff between 10.8.0 and 10.9.0 on GitHub. The following release notes are directly from the changelog:

v10.9.0

Added

  • Add new HTTP status assertions (#46841)
  • Allow pruning all cancelled and unfinished queue batches (#46833)
  • Added IGNITION_LOCAL_SITES_PATH to $passthroughVariables in ServeCommand.php (#46857)
  • Added named static methods for middleware (#46362)

Fixed

  • Fix date_format rule throw ValueError (#46824)

Changed

  • Allow separate directory for locks on filestore (#46811)
  • Allow to whereMorphedTo work with null model (#46821)
  • Use pivot model fromDateTime instead of assuming Carbon in Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable::addTimestampsToAttachment() (#46822)
  • Make rules method in FormRequest optional (#46846)
  • Throw LogicException when calling FileFactory@image() if mimetype is not supported (#46859)
  • Improve job release method to accept date instance (#46854)
  • Use foreignUlid if model uses HasUlids trait when call foreignIdFor (#46876)
Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Compile PHP to Native Binaries with TypePHP image

Compile PHP to Native Binaries with TypePHP

Read article
State of Laravel 2026 Survey Is Now Open image

State of Laravel 2026 Survey Is Now Open

Read article
Testing Best Practices Skill in Laravel Boost v2.6.0 image

Testing Best Practices Skill in Laravel Boost v2.6.0

Read article
Query Binding Masking and whereBinary() in Laravel 13.27 image

Query Binding Masking and whereBinary() in Laravel 13.27

Read article
Laravel AI: Load Tools On Demand With ToolSearch image

Laravel AI: Load Tools On Demand With ToolSearch

Read article
Laravel Auditor Audits Your App With Your Own AI Agent image

Laravel Auditor Audits Your App With Your Own AI Agent

Read article