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

0
Перекладено ШІ
Оригінал: 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

Популярні

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше