Команда Laravel випустила версію v12.11.0, що включає нові можливості: типізовані Arr методи-геттери, доповнення до вантажу роботи, клас FakeJob тепер реалізує контракт Job та інші зміни:
# Типізовані Геттери для Arr Helpers
Ентоні Тіббс додав типізовані геттери для класу підтримки Arr з підтримкою array, boolean, float, integer та string. Кожен метод намагатиметься повернути значення певного типу, а при невідповідності викидатиме виключення:
use Illuminate\Support\Arr;
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$value = Arr::array($array, 'languages'); // ['PHP', 'Ruby']
$value = Arr::array($array, 'name'); // генерує InvalidArgumentException
Деталі можна знайти у Pull Request #55567.
# Додано CreatedAt та Original Delay до Вантажу Роботи
Тейлор Отвелл додав інформацію про створення вантажу та затримку роботи до вантажів. Затримка — опціональна затримка в секундах, а createdAt — це часовий штамп, коли було створено вантаж роботи:
$job->payload();
/*
Тепер включає: ['delay' => 5, 'createdAt' => 1745965273]
*/
Деталі за посиланням: Pull Request #55529.
# Переконатися, що FakeJob Реалізує Контракт Job
Тім Макдональд додав контракт Illuminate\Contracts\Queue\Job до класу FakeJob, що використовується в тестах для підроблення чергових завдань:
Підроблена завдання застосовується там, де очікується реалізація контракту роботи.
Це забезпечує підтримку строгого типізування контракту роботи, коли, наприклад, слухаються події і передається екземпляр завдання.
Деталі у Pull Request #55574.
# Примітки до випуску
Повний список нових можливостей та оновлень можна знайти нижче, а також порівняння між 12.10.0 та 12.11.0 на GitHub. Наведені примітки до випуску взяті з changelog:
# v12.11.0
- Додано створення вантажу та інформацію про початкову затримку до вантажу роботи від @taylorotwell: Pull Request
- Додано опцію конфігурації для ігнорування відміток часу кеша представлень від @pizkaz: Pull Request
- [12.x] Відправлення NotificationFailed при невдачі відправлення від @rodrigopedra: Pull Request
- [12.x] Можливість відключити dispatchAfterResponse в тестах від @gdebrauwer: Pull Request
- [12.x] Передача прапорців в кастомний Json::$encoder від @rodrigopedra: Pull Request
- [12.x] Використання pendingAttributes взаємовідносин при створенні моделей взаємовідносин через фабрики моделей від @gdebrauwer: Pull Request
- [12.x] Виправлення подвійного запиту під час серіалізації відношень моделі від @AndrewMast: Pull Request
- [12.x] Покращення перевірки кругового відношення в автоматичному завантаженні відношення від @litvinchuk: Pull Request
- [12.x] Запобігання серіалізації контексту автозавантаження відношень від @litvinchuk: Pull Request
- Видалено
@internalанотацію з властивості$componentsвInteractsWithIOвід @michaelnabil230: Pull Request - Переконатися, що підроблене завдання реалізує контракт роботи від @timacdonald: Pull Request
- [12.x] Виправлення типу параметра конструктора
AnyOfвід @axlon: Pull Request - Синхронізація змін у компонентах Illuminate перед випуском від @driesvints: Pull Request
- [12.x] Встановлення клас-стрінгів генералізованих на правилі
Enumвід @cosmastech: Pull Request - [12.x] Додано детальні документальні типи до методів, пов'язаних з прив'язками від @taka-oyama: Pull Request
- [12.x] Покращення директиви @use для підтримки модифікаторів функцій та констант від @rodolfosrg: Pull Request
- 12.x заплановане завдання не відправлено при невдачі запланованого завдання від @achrafAa: Pull Request
- [12.x] Введення методів Reflector для доступу до класових атрибутів від @daniser: Pull Request
- [12.x] Типізовані геттери для допомоги Arr від @tibbsa: Pull Request