Драйвер черги з резервуванням у Laravel 12.34

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 16 жовтня, 2025
Цього тижня команда Laravel випустила версію 12.34.0, яка включає нові можливості, такі як драйвер звукової черги та покращення повнотекстового пошуку в Laravel Scout. Чи готові ви дізнатися про всі нововведення та вдосконалення? Читайте далі, щоб не пропустити жодну деталь

Цього тижня команда Laravel випустила версію 12.34.0, що включає новий драйвер запасного черги, покращення повнотекстового пошуку в базах даних через Laravel Scout, відкладений пакет HTTP-клієнта та інші нововведення

# Драйвер запасного черги

Тейлор Отвелл додав драйвер failover, який забезпечує автоматичний перехід на інший чергу у випадку збою основного з’єднання. Якщо основний драйвер не працює, запасний драйвер перенесе завдання до наступного налаштованого з’єднання

'failover' => [
    'driver' => 'failover',
    'connections' => [
        env('QUEUE_CONNECTION', 'database'),
        'sync',
    ],
],

Деталі реалізації можна знайти у Pull Request #57341. Також, щоб дізнатися, як налаштувати драйвер failover, перегляньте документацію по чергах

# Поліпшення повнотекстового пошуку в Laravel Scout

Тейлор Отвелл додав поліпшення повнотекстового пошуку для двигуна database в Laravel Scout. При використанні Postgres, якщо інший порядок не визначено, він автоматично використовує порядок за релевантністю, що відповідає поведінці MySQL

Якщо ви користуєтеся Laravel Scout, оновіть до останньої версії через Composer, щоб отримати ці нововведення. Деталі можна знайти у Pull Request #947

# Оновлення підтримки редакторів на локальній сторінці винятків

Група розробників додала підтримку нових посилань на редактори на локальній сторінці винятків. Ви можете налаштувати значення app.editor відповідно до підтримуваних посилань, знайдених у ResolvesDumpSource.php

Ось список нових редакторів, доданих у Laravel 12.34:

# Підтримка Closure для throw_if

Кріс Пейдж запропонував підтримку Closure для параметра винятку throw_if:

// Обгортка в Closure забезпечує виконання лише за умови істинності
throw_if($apiResponse instanceof CustomResponse, fn() => new \Exception($apiResponse->message));

# Метод defer для HTTP-пакетів

Венделл Адріель раніше додав метод пакетних запитів Http Client у Laravel 12.32. У цій версії він додав метод defer(), що дотримується аналогічного шаблону, використаного в Concurrency

Цей метод корисний, якщо ви хочете пакетувати запити після повернення відповіді, але активувати дії за допомогою хуків:

Http::batch(fn (Batch $batch) => [
    $batch->get('https://example.com/endpoint-1'),
    $batch->get('https://example.com/endpoint-2'),
])->before(function (Batch $batch) {
    // Пакет створено, але запити ще не ініціалізовано...
})->progress(function (Batch $batch, int|string $key, Response $response) {
    // Один із запитів успішно завершено...
})->then(function (Batch $batch, array $results) {
    // Усі запити успішно завершено...
})->catch(function (Batch $batch, int|string $key, Response|RequestException $response) {
    // Виявлено невдачу першого запиту в партії...
})->finally(function (Batch $batch, array $results) {
    // Пакет завершив виконання...
})->defer();

Детальніше в Pull Request #57387

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

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

# v12.34.0