Цього тижня команда Laravel випустила версію 12.34.0, що включає новий драйвер запасного черги, покращення повнотекстового пошуку в базах даних через Laravel Scout, відкладений пакет HTTP-клієнта та інші нововведення
Тейлор Отвелл додав драйвер failover
, який забезпечує автоматичний перехід на інший чергу у випадку збою основного з’єднання. Якщо основний драйвер не працює, запасний драйвер перенесе завдання до наступного налаштованого з’єднання
'failover' => [
'driver' => 'failover',
'connections' => [
env('QUEUE_CONNECTION', 'database'),
'sync',
],
],
Деталі реалізації можна знайти у Pull Request #57341. Також, щоб дізнатися, як налаштувати драйвер failover
, перегляньте документацію по чергах
Тейлор Отвелл додав поліпшення повнотекстового пошуку для двигуна database
в Laravel Scout. При використанні Postgres, якщо інший порядок не визначено, він автоматично використовує порядок за релевантністю, що відповідає поведінці MySQL
Якщо ви користуєтеся Laravel Scout, оновіть до останньої версії через Composer, щоб отримати ці нововведення. Деталі можна знайти у Pull Request #947
Група розробників додала підтримку нових посилань на редактори на локальній сторінці винятків. Ви можете налаштувати значення app.editor
відповідно до підтримуваних посилань, знайдених у ResolvesDumpSource.php
Ось список нових редакторів, доданих у Laravel 12.34:
Кріс Пейдж запропонував підтримку Closure для параметра винятку throw_if
:
// Обгортка в Closure забезпечує виконання лише за умови істинності
throw_if($apiResponse instanceof CustomResponse, fn() => new \Exception($apiResponse->message));
Венделл Адріель раніше додав метод пакетних запитів 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. Наступні примітки до випуску безпосередньо з змін:
Str
, пов'язане з фабриками від @cosmastech в https://github.com/laravel/framework/pull/57297Trae IDE
на локальній сторінці винятків від @sajjadhossainshohag в https://github.com/laravel/framework/pull/57300Schedule::useCache()
від @amirhshokri в https://github.com/laravel/framework/pull/57311Str::uuid()
повертає Stringable
від @cosmastech в https://github.com/laravel/framework/pull/57340ResolvesDumpSource
від @OmarFaruk-0x01 в https://github.com/laravel/framework/pull/57363