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

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 →
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