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 →
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article
Group Adjacent Collection Items in Laravel with chunkBy() image

Group Adjacent Collection Items in Laravel with chunkBy()

Read article
Laravel queue:work Now Prints Why the Worker Stopped image

Laravel queue:work Now Prints Why the Worker Stopped

Read article
Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites image

Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites

Read article