News

Laravel 9.15 Released

Published
Laravel 9.15 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released 9.15 with the ability to list only vendor routes, check if a filesystem folder is empty/not empty, an isJson() string helper, and more:

Only vendors listed in route:list command

Ash Allen contributed a --only-vendor flag to the route:list command. Only vendor routes will appear in the terminal, and the command will ignore your application routes.

This flag is helpful to audit routes that packages may have installed that you're not aware of otherwise or if you are curious about what routes packages register.

HTTP client "throw unless" method

Mahmoud Mohamed Ramadan contributed a throwUnless() function to the Laravel HTTP client. This method will throw an exception if a server or client error occurred and the given condition is false:

$response = Http::post(/* ... */);
$response->throwUnless($condition);

String isJson() method

Daniel Eckermann contributed an isJson() method to the Str and Stringable classes to determine if a string is valid json:

Str::isJson($data);
//=> boolean
 
Str::of($data)->isJson()
//=> boolean
 
str($data)->isJson();
//=> boolean

Check if a filesystem directory is empty

@DarkGhostHunter contributed two methods to determine if a filesystem directory is empty or not:

use Illuminate\Support\Facades\File;
 
if (File::isDirectoryEmpty('john/photos')) {
return 'You do not have any photos';
}
 
if (File::isDirectoryNotEmpty('john/videos', true)) {
return 'You may have one or more videos, even hidden ones.';
}

Show route list counts

Ash Allen contributed a visual route count to the beginning and end of the route:list CLI output:

Support kebab case for slot name shortcut

Waghabond contributed kebab-case for slot names:

<!-- /resources/views/components/my-layout.blade.php -->
<html lang="en">
<body>
{{ $mySlot }}
</body>
</html>
 
<!-- /resources/views/components/child.blade.php -->
<x-my-layout>
{{-- kebab-case slot name --}}
<x-slot:my-slot>
<div>My super cool content</div>
</x-slot:my-slot>
</x-my-layout>

Release Notes

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

v9.15.0

Added

  • Added --only-vendor option to route:list command (#42549)
  • Added Illuminate/Http/Client/PendingRequest::throwUnless() (#42556)
  • Added Illuminate/Support/Str::isJson() (#42545)
  • Added Illuminate/Filesystem/Filesystem::isEmptyDirectory() (#42559)
  • Added Add counts to route:list command (#42551)
  • Support kebab case for slot name shortcut (#42574)

Reverted

Fixed

  • Fix getting '0' from route parameter in Authorize middleware (#42582)

Changed

  • Retain the original attribute value during validation of an array key with a dot for correct failure message (#42395)
  • Allow bootable test traits to teardown (#42521)
  • Pass thrown exception to $sleepMilliseconds closure in retry helper (#42532)
  • Make HasTimestamps::updateTimestamps chainable (#42533)
  • Remove meaningless parameter in Illuminate/View/Concerns/ManagesEvents (#42546)
  • Map integer parameter to parameter name when resolving binding field (#42571)
  • Conditionable should return HigherOrderWhenProxy only when the args number is exactly 1 (#42555)
Paul Redmond photo

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

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

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