News

Background Queue Connection in Laravel 12.37

Published
Background Queue Connection in Laravel 12.37 image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released version 12.37.0, with new background queue driver, a Factory insert method, a ucwords() string method, and more.

Process Queue Jobs in the Background

Barry vd. Heuvel contributed a queue driver that defers jobs to the background using Concurrently::defer(). The job is serialized and run from a PHP process:

Similar to the deferred queue driver, this defers the jobs to the background, but uses Concurrently::defer() instead of the regular defer. This means the job will be serialized and ran from a PHP process, which might be more suitable for 'heavier'/longer requests.

Use cases would be similar to Concurrently::defer() but simplified as a Job.

RecordDelivery::dispatch($order)->onConnection('background');

See the Deferred Dispatching documentation for more details.

Pass a Custom Depth to Filesystem files() and directories() Methods

Andrew Brown contributed the ability to pass an optional depth parameter to filesystem methods. This update is backward compatible because the default is 0, which was previously the hard-coded depth.

use Illuminate\Support\Facades\Storage;

$files = Storage::files($directory, depth: 2);

$directories = Storage::directories($directory, depth: 2);

Factory Insert Method

Luke Kuzmish contributed a Factory::insert() method that allows performing a mass insert of models. When using create with a large count, create inserts records in separate insert queries:

User::factory()->count(100)->create();

// Insert model records in bulk
User::factory()->count(100)->insert($attributes = [], $parent = null);

When using the insert() method, no model events are emitted.

Json Schema Improvements

Timo Mühlbach contributed updates to the JSON schema implementation, adding support for backed enums and a format method for StringType:

// Enum Before
$schema->string('oneof')->enum(['a', 'b', 'c']);

// After
$schema->string('oneof')->enum(Options::class);

// Add a `format()` method for `StringType
$schema->string('somedate')->format('date');

Add ucwords() Method to Stringable

@braxey contributed a ucwords() method to the Str helper and Stringable class:

Str::ucwords('laravel framework'); // Laravel Framework

str('laravel frameWork')->lower()->ucwords(); // Laravel Framework

About Command Improvements

Chinmay Purav contributed updates to the php artisan about command to provide detailed information for failover drivers:

  • Cache failover
  • Queue failover
  • Mail failover and roundrobin

See Pull Request #57579, #57582, and #57590 for screenshots.

Release notes

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

v12.37.0

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 →
Insert Middleware Before or After Existing Laravel Middleware image

Insert Middleware Before or After Existing Laravel Middleware

Read article
Laravel Herd 2: Coding Agents, Workspaces, and Cloud Deploys image

Laravel Herd 2: Coding Agents, Workspaces, and Cloud Deploys

Read article
Strict Request Input Casting in Laravel image

Strict Request Input Casting in Laravel

Read article
Prevent Duplicate File Uploads With Laravel Storage Dedupler image

Prevent Duplicate File Uploads With Laravel Storage Dedupler

Read article
Slow Job Alerts and Replica Commit IDs in Laravel 13.40 image

Slow Job Alerts and Replica Commit IDs in Laravel 13.40

Read article
Flock: A Free, Native Herd Alternative for Laravel image

Flock: A Free, Native Herd Alternative for Laravel

Read article