Команда Laravel випустила версію v13.13.0. Серед головних нововведень — метод для масового запуску завдань, підтримка PSR-18 для HTTP-клієнта, покращена робота з вкладеннями у сповіщеннях та низка виправлень для валідації та баз даних.
Bus::bulk()для ефективного відправлення великої кількості завдань.- Хелпери
attachFromStorage()для поштових повідомлень у сповіщеннях. - Можливість використання HTTP-клієнта як PSR-18 клієнта.
- Підтримка мемоїзації через атрибут
Cache. - Підтримка векторних індексів у MariaDB.
- Виправлення помилок у валідації та Query Builder.
# Що нового
# Bus::bulk() для масового запуску завдань
@jackbayliss додав метод Bus::bulk(). Він дозволяє відправляти масив завдань у чергу, групуючи їх за з’єднанням та назвою черги. На відміну від Bus::batch(), цей метод не відстежує прогрес у базі даних, що дозволяє уникнути зайвого навантаження при обробці великих обсягів даних.
use Illuminate\Support\Facades\Bus;
Bus::bulk(array_map(fn (User $user) => new ProcessUser($user), $users));
PR: #60297
# Вкладення зі сховища для сповіщень
@LucasCavalheri додав методи attachFromStorage() та attachFromStorageDisk() до класу MailMessage. Тепер робота з вкладеннями у сповіщеннях стала ідентичною до функціонала, який вже доступний у Mailables.
(new MailMessage)
->attachFromStorage('/path/to/file')
->attachFromStorageDisk('s3', 'invoices/1.pdf', 'invoice.pdf', [
'mime' => 'application/pdf',
]);
PR: #60268
# HTTP-клієнт як PSR-18 клієнт
@willrowe оновив клієнт, що повертається через Http::buildClient() — тепер він сумісний із Psr\Http\Client\ClientInterface. Це дозволяє передавати HTTP-клієнт Laravel у сторонні пакети, що потребують PSR-18. При цьому всі запити проходитимуть через ті ж middleware та стеки обробників, що і в решті застосунку.
$geocoder = new GeocodingService(Http::buildClient());
PR: #60295
# Мемоїзація атрибута Cache
@jenky оновив атрибут Cache. Тепер він підтримує впровадження мемоїзованого екземпляра кешу в конструктори та методи resolve, розвиваючи функціонал мемоїзації, доданий у попередніх релізах 13.x.
PR: #60309
# Підтримка векторних індексів MariaDB
@michielvaneerd додав підтримку векторних індексів для MariaDB у Schema Builder.
PR: #60334
# Виправлення валідації та запитів
Цей реліз також містить кілька важливих виправлень:
- @Button99 виправив логіку порівняння пропорцій у валідації розмірів зображень (#60290).
- @ahawlitschek усунув помилку в
whereDateтаwhereTime, коли замість назви колонки передаєтьсяExpression(#60314). - @PeteBishwhip налаштував
sole()на викиданняMultipleRecordsFoundExceptionу відповідних випадках (#60294). - @ErfanMomeniii оновив
isUniqueConstraintError()для розпізнавання помилки 2627 у SQL Server (#60320). - @kieranbrown виправив нормалізацію імен FIFO-черг у хмарних сервісах (#60315).
- @crynobone забезпечив сумісність
Illuminate\Http\Responseіз Symfony 8.1 (#60318).
Корисні посилання: