Фонове з'єднання черги в Laravel 12.37

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 06 листопада, 2025
Laravel 12.37.0 приніс кілька важливих оновлень, зокрема новий драйвер для обробки черг у фоновому режимі та метод вставки для Factory, який дозволяє проводити масове вставлення моделей. Чи готові ви дізнатися більше про ці нововведення та покращення? Читайте далі!

Цього тижня команда Laravel випустила версію 12.37.0, в якій з'явилися новий драйвер фонових черг, метод вставки в Factory, ряд рядкових функцій, зокрема ucwords(), та інші нововведення

# Обробка чергових завдань у фоновому режимі

Barry vd. Heuvel запропонував драйвер черг, який відправляє завдання у фоновий режим за допомогою Concurrently::defer(). Завдання серіалізується та виконується з процесу PHP:

Цей драйвер, подібно до попереднього, відправляє завдання у фон, але використовує Concurrently::defer() замість звичайного відкладання. Це означає, що завдання буде серіалізоване і виконуватиметься з PHP-процесу, що може бути більш підходящим для "важчих" чи триваліших запитів.

Сценарії використання будуть схожими на Concurrently::defer(), але спрощені у вигляді завдання.

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

Детальніше ознайомитися з документацією з відкладеного виконання

# Додавання параметра "глибини" для методів files() і directories() файлів файлової системи

Andrew Brown реалізував можливість передавати необов'язковий параметр глибини в методи файлової системи. Це оновлення зворотно сумісне, оскільки значення за замовчуванням — 0, що раніше було закодованим значенням глибини.

use Illuminate\Support\Facades\Storage;

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

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

# Метод вставки в Factory

Luke Kuzmish додав метод Factory::insert(), який дозволяє масову вставку моделей. При використанні методу create для великої кількості записів вони вставляються через окремі запити:

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

// Масова вставка записів моделей
User::factory()->count(100)->insert($attributes = [], $parent = null);

При використанні методу insert() події моделі не генеруються.

# Поліпшення JSON-схем

Timo Mühlbach вніс зміни в реалізацію JSON-схеми, додавши підтримку задніх енумів та метод форматування для StringType:

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

// Після
$schema->string('oneof')->enum(Options::class);

// Додаємо метод `format()` для `StringType`
$schema->string('somedate')->format('date');

# Додавання методу ucwords() до Stringable

@braxey реалізував метод ucwords() у класах Str та Stringable:

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

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

# Поліпшення команди About

Chinmay Purav оновив команду php artisan about, щоб надавати детальну інформацію про драйвери резервного копіювання:

Ознайомитися зі скріншотами можна у Pull Request #57579, #57582 та #57590.

# Примітки до випуску

Повний перелік нових функцій і оновлень ви можете знайти нижче, а також ви можете переглянути зміни між 12.36.0 та 12.37.0 на GitHub. Нижче наведені примітки до випуску з журналу змін:

# v12.37.0