News

Laravel 10.31 Released

Published Updated

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

This week, the Laravel team released v10.31, the ability to place batches within job chains. You can run jobs sequentially, then parallelize a batch of jobs, and continue with the chain once that batch has been completed.

Allow placing a batch on a chain

Sebastien Armand added the ability to run batches of jobs within a job chain

This is a use case we encounter in a couple places at Square where we have a serial process of jobs that need to be handled and one or more of the steps either should be worked on in parallel or are of unknown length when initially triggering the workflow and will create additional jobs, but we need to know when this is finished to ensure we keep the chain going.

Here's an example from the updated Chains & Batches documentation, where you could first flush the cache, release a batch of podcasts, and then batch notifications of those podcasts:

use App\Jobs\FlushPodcastCache;
use App\Jobs\ReleasePodcast;
use App\Jobs\SendPodcastReleaseNotification;
use Illuminate\Support\Facades\Bus;
 
Bus::chain([
new FlushPodcastCache,
Bus::batch([
new ReleasePodcast(1),
new ReleasePodcast(2),
]),
Bus::batch([
new SendPodcastReleaseNotification(1),
new SendPodcastReleaseNotification(2),
]),
])->dispatch();

Sleep::until() handles string timestamps

James Hulse contributed the ability to pass a timestamp string to Sleep::until(), which will still ensure the value is numeric:

Sleep::until("1699411804");

Added support for Sec-Purpose header

@nanos contributed support for the Sec-Purpose header when relying on the $request->prefetch() method:

Whilst most User Agents set Purpose: prefetch in prefetch requests, Firefox uses Sec-Purpose: prefetch in the latest version, as described in the above MDN article. This means that calling the ->prefetch() method on the request will return false for requests sent via the Firefox browser, regardless of prefetch status.

Release notes

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

v10.31.0

Edit 11/09/2023: The Bus::chain() snippet originally contained an incorrect ->then() chain. This article has corrected the error and it was also fixed upstream in the official docs.

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 →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article