News

Laravel 5.8.24 Released

Published
Laravel 5.8.24 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

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
$response->assertSessionHas('authenticatable');
$this->assertTrue($user->is(session('authenticatable')));
 
// 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:

$response->assertUnauthorized();

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:

v5.8.24

Added

  • 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

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

Reverted

Changed

  • Handle SuspiciousOperationException in router as NotFoundHttpException (#28866)
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 →
Building EasyReply: How We Used Laravel to Unify Customer Support image

Building EasyReply: How We Used Laravel to Unify Customer Support

Read article
PostgreSQL Monitoring and Schema Linting for Laravel with Vacuum image

PostgreSQL Monitoring and Schema Linting for Laravel with Vacuum

Read article
PayZephyr: One Payment API for Stripe, Paystack, and PayPal image

PayZephyr: One Payment API for Stripe, Paystack, and PayPal

Read article
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article