Команда Laravel представила реліз v13.14.0 (від 04.06.2026). Основні оновлення включають новий десериалізатор для бібліотеки JSON Schema, виправлення логіки успадкування атрибутів у чергах, розширені можливості моніторингу завдань, а також низку виправлень для HTTP-клієнта та поштової системи.
JsonSchema::fromArray()— для відновлення об'єктівTypeіз масивів;- властивості дочірніх завдань у чергах тепер перекривають успадковані атрибути;
- до класу
InspectedJobдодано властивістьqueue; - коректне кешування falsy-значень у JSON-відповідях HTTP-клієнта;
- виправлення вкладень у
Mailта обробки null-заголовків.
# Що нового
# Десериалізація масивів у JSON Schema
@pushpak1300 реалізував метод JsonSchema::fromArray(), який конвертує «сирий» масив JSON Schema назад в об'єкт Type. Раніше бібліотека працювала лише в одному напрямку: можна було створити об'єкт Type та серіалізувати його в масив. Новий Deserializer доповнює Serializer, дозволяючи перетворювати отримані схеми на об'єкти, з якими працює API.
$type = JsonSchema::fromArray([
'type' => 'object',
'properties' => [
'name' => ['type' => 'string', 'minLength' => 1],
'age' => ['type' => 'integer', 'minimum' => 0],
],
'required' => ['name'],
]);
// Повертає ObjectType
Ці операції повністю сумісні: JsonSchema::fromArray(), застосований до серіалізованого типу, повертає еквівалентний об'єкт.
PR: #60384
# Перевизначення атрибутів у дочірніх класах черг
@mattiasgeniar виправив помилку в логіці успадкування системи черг. Раніше, якщо батьківський клас мав атрибут черги (наприклад, #[Timeout(40)]), дочірній клас не міг змінити це значення через оголошення однойменної властивості. Тепер встановлено чіткий пріоритет: атрибути класу все ще мають перевагу над властивостями того ж класу, проте властивості дочірнього класу тепер успішно перекривають атрибути, успадковані від батька.
PR: #60369
# Назва черги в Inspected Jobs
@jackbayliss додав властивість queue до класу InspectedJob. Це дозволяє бачити, до якої саме черги призначено завдання під час інспектування відкладених процесів. Функція працює для драйверів database та Redis.
PR: #60374
# Коректне кешування falsy-значень у JSON
@Button99 виправив баг, через який валідні falsy-значення у JSON (false, 0 або null) не кешувалися у відповідях HTTP-клієнта. Тепер для відстеження статусу декодування використовується окремий прапорець, тому falsy-результати не сприймаються як «ще не декодовані» і не обробляються повторно при кожному зверненні.
PR: #60357
# Виправлення у Mail та заголовках
Цей реліз також містить низку дрібних покращень:
- @miladev95 виправив обробку вкладених даних у
Message::embed(#60361); - @GrahamCampbell вдосконалив роботу з null-заголовками (#60386);
- @irabbi360 забезпечив сумісність
Request::createFromBase()із Symfony 8.1 (#60354); - @tontonsb зареєстрував хук
lazy refreshдля всіх з'єднань (#60359); - @timacdonald виніс форматувальник хмарних логів у власний namespace (#60362);
- @jackbayliss уточнив у документації, що
DebounceForвимірюється в секундах (#60388).
Джерела: