У Laravel 13.8.0 з’явилися нові методи для інспектування всіх Queue одночасно.

Перекладено ШІ 0 Laravel News 07 травня, 2026

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

Laravel v13.8.0 отримав методи для перевірки завдань у всіх чергах одним викликом, нові події паузи та відновлення воркерів, метод assertSessionMissingInput() для тестування, підтримку enum SortDirection у конструкторі запитів та низку інших покращень:

  • Методи інспектування черг: allReservedJobs(), allDelayedJobs() та allPendingJobs()
  • Події WorkerPausing та WorkerResuming
  • Тестове твердження assertSessionMissingInput()
  • Підтримка SortDirection enum для orderBy() та суміжних методів
  • Фільтр середовища (Environment) для команди schedule:list
  • Кастомні дії onDelete()/onUpdate() для зовнішніх ключів
  • Мідлвари в атрибутах тепер об'єднуються з мідлварами маршрутів
  • Драйвер Mail за замовчуванням тепер приймає backed enums
  • Іменовані провайдери облікових даних для підключень SQS
  • Численні виправлення типів та покращення docblock

# Що нового

# Методи інспектування всіх черг

Раніше методи Queue::reservedJobs(), Queue::delayedJobs() та Queue::pendingJobs() вимагали назву конкретної черги. Щоб перевірити кілька черг, доводилося створювати ланцюжки викликів. У новій версії додано методи allReservedJobs(), allDelayedJobs() та allPendingJobs(), які дозволяють отримати завдання з усіх черг одночасно:

// Раніше — окремий запит для кожної черги
Queue::reservedJobs('queue1')
    ->merge(Queue::reservedJobs('queue2'))
    ->merge(Queue::reservedJobs('queue3'));
 
// Тепер — один виклик для всіх черг
Queue::allReservedJobs();
Queue::allDelayedJobs();
Queue::allPendingJobs();

Кожен метод повертає колекцію екземплярів InspectedJob із властивостями uuid, name, attempts та createdAt. Це корисно під час розгортання, коли потрібно переконатися, що жодне завдання не виконується перед зупинкою воркерів. Методи працюють із драйверами database, Redis та fake.

PR: #59997

# Події паузи та відновлення воркерів

Додано дві нові події — WorkerPausing та WorkerResuming. Вони спрацьовують, коли воркер черги отримує сигнали SIGUSR2 або SIGCONT відповідно. Це дозволяє краще відстежувати стан воркерів, наприклад, для логування або сповіщень під час деплою.

PR: #59895

# Тестове твердження assertSessionMissingInput()

У TestResponse з'явився метод assertSessionMissingInput(), що є протилежністю до assertSessionHasInput(). Він приймає назву поля або масив назв:

$response->assertSessionMissingInput('name');
 
$response->assertSessionMissingInput(['connection_id', 'repository', 'source_branch']);

PR: #59970

# SortDirection Enum у конструкторі запитів

Слідом за підтримкою в колекціях (версія 13.7.0), методи конструктора запитів, такі як orderBy(), orderByDesc() та orderByRaw(), тепер підтримують нативний PHP-enum SortDirection (з'явився у PHP 8.6):

use SortDirection;
 
DB::table('users')
    ->orderBy('name', SortDirection::Descending)
    ->get();

PR: #59865

# Фільтр оточення для schedule:list

Команда Artisan schedule:list тепер підтримує опцію --environment для фільтрації запланованих завдань за середовищем їх виконання:

php artisan schedule:list --environment=production

Це дозволяє на продакшні бачити лише ті команди, які дійсно будуть запущені, ігноруючи завдання для local або staging.

PR: #59993

# Кастомні дії onDelete()/onUpdate() для зовнішніх ключів

Клас ForeignKeyDefinition тепер приймає довільні рядки для onDelete() та onUpdate(), не обмежуючись стандартними cascade, restrict, no action та set null. Це вирішує проблему сумісності з PHPStan при використанні специфічного синтаксису PostgreSQL для композитних ключів:

$table->foreign(['document_id', 'client_id'])
    ->references(['id', 'client_id'])
    ->on('documents')
    ->onDelete('set null (document_id)');

PR: #59986

# Об'єднання мідлварів з атрибутів та маршрутів

Раніше атрибут #[Middleware] у контролері ігнорувався, якщо для маршруту були визначені інші мідлвари. Тепер мідлвари з атрибутів об'єднуються з іншими правилами, а не перезаписуються ними.

PR: #59944

# Іменовані провайдери облікових даних для SQS

З'єднання SQS тепер підтримують іменовані AWS credential providers. Це дозволяє використовувати конкретні профілі або ланцюжки облікових даних, визначені в AWS SDK, замість обмеження лише змінними оточення чи метаданими інстансу:

// config/queue.php
'sqs' => [
    'driver' => 'sqs',
    'credentials' => 'my-named-provider',
    // ...
],

PR: #59754

# Підтримка Enums у драйвері пошти

Метод MailManager::setDefaultDriver() тепер приймає backed enums разом із рядками, що уніфікує його роботу з методами mailer() та driver():

Mail::setDefaultDriver(MailDriver::Smtp);

PR: #59973

# Виправлення та покращення

Цей реліз містить велику кількість виправлень анотацій типів та покращень docblock для конструкторів схем, кешу, фабрик та колекцій. Також виправлено роботу з протермінованими блокуваннями у DatabaseLock::isLock, роботу макросів зі статичними замиканнями та підтримку UnitEnum у ModelNotFoundException. Крім того, виправлено TTL для лімітера запитів та типи для методів freezeTime і travelTo.

Посилання

Популярні

Інше, що варто прочитати

35 Оновлено 07 травня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

14 Оновлено 07 травня, 2026

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

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

15 Оновлено 07 травня, 2026

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту