Laravel 5.8.24 Released

Laravel 5.8.24 Released

The Laravel team released v5.8.24 yesterday with new TestResponse features and other miscellaneous quality of life improvements.

First the assertSessionHas method has the capability of asserting a session contains a piece of data using a closure. While sessions are generally only contain simple values, here’s a use-case example from the pull request:

// Before

// After
$response->assertSessionHas('authenticatable', function ($authenticatable) use ($user) {
    return $user->is($authenticatable);

Next, a new assertUnauthorized method was added to the TestResponse class as a convenience to assert a 401 status code:


Next, the server port can be defined via the SERVER_PORT environment variable for the Artisan serve command:

# Before 5.8.24
php artisan serve --port=9005

# Via env or in the .env file
export SERVER_PORT="9005"
php artisan serve

Next, an optional $when parameter was added to the retry() helper which allows a callback to dictate retries. I think the unit tests in the commit help illustrate the usage:

$attempts = retry(2, function ($attempts) {
    if ($attempts > 1) {
        return $attempts;
    throw new RuntimeException;
}, 100, function ($ex) {
    return true;

// Make sure we made two attempts
$this->assertEquals(2, $attempts);

// Make sure we waited 100ms for the first attempt
$this->assertTrue(microtime(true) - $startTime >= 0.1);

Last, a nice quality of life improvement when using the artisan console with the —env flag. Previously, the env flag is only parsed correctly with an equals sign (—env=dev) but now a space will work too:

php artisan --env dev the:command

You can see the full list of fixes below, and the whole diff between 5.8.23 and 5.8.24 on GitHub. The full release notes for Laravel 5.8 are available in the GitHub 5.8 changelog:



  • Added possibility to assert that the session contains a given piece of data using a closure in TestResponse::assertSessionHas() (#28837)
  • Added TestResponse::assertUnauthorized() (#28851)
  • Allowed to define port in ServeCommand via SERVER_PORT env variable (#28849, 6a18e73)
  • Allowed console environment argument to be separated with a space (#28869)
  • Added @endcomponentFirst directive (#28884)
  • Added optional parameter $when to retry helper (85c0801)


  • Fixed Builder::dump() and Builder::dd() with global scopes (#28858)



  • Handle SuspiciousOperationException in router as NotFoundHttpException (#28866)

Filed in: News / Releases
Laravel News Partners

Laravel Jobs

Medior Laravel Backend Developer (The Netherlands/Dutch only)
Nijmegen, The Netherlands
BigSpark B.V.
Laravel Developer
Senior Laravel Backend Engineer
Remote, USA Only, Inc.
Full Stack Developer
Senior PHP Developer


Join 31,000+ others and never miss out on new tips, tutorials, and more.