TGViewer
Заметки разработчика Заметки разработчика @dev_notes_ru · 458 subscribers
Post #1700 232
Вышел Laravel 12.50.0

Отличные новости для Laravel-разработчиков! Вышел релиз Laravel 12.50.0 с несколькими важными улучшениями для повседневной работы. Вот главное, что нужно знать.

🚀 Ключевые изменения и новые возможности

Эти обновления добавят гибкости и надежности проектам.

🔹 Уникальные слушатели событий в очередях (#58402): Теперь вы можете избежать дублирования задач в очереди для слушателей событий, используя метод unique(): SendOrderShippedNotification::class)->unique()->onQueue('notifications') → SendOrderShippedNotification::class)->unique()->onQueue('notifications'). Это особенно полезно для частых событий, чтобы предотвратить накопление идентичных заданий.
🔹 Элегантное управление дополнениями (appends) у моделей (#58552): Появился новый метод withoutAppends() для временного отключения глобальных дополнений (accessors/appends) при сериализации модели: $user->withoutAppends()->toArray() → $user->withoutAppends()->toArray().
🔹 Enum-поддержка в кеше (#58616): Метод Cache::get() теперь корректно работает с массивом, содержащим enum-ключи, что упрощает работу с typed-кешированием.
🔹 Метод hasMany() для коллекций (#58550): У объектов Collection появился удобный метод hasMany() для проверки, содержит ли коллекция более одного указанного элемента.
🔹 Клонирование состояния в нотификациях (#58558): Исправлено поведение, гарантирующее, что каналы доставки (via), заданные динамически в методе via(), сохраняются при отправке уведомления через sendNow().

🛠 Улучшения и исправления

🔹 Сохранение ассоциативных ключей в отношениях (#58506): При eager loading отношений ассоциативные ключи родительской коллекции теперь сохраняются, что предотвращает неожиданную переиндексацию.
🔹 Использование morphMap при сериализации моделей (#58482): При сериализации идентификаторов модели в заданиях очереди теперь автоматически учитывается глобальный morphMap, обеспечивая консистентность.
🔹 Улучшенные типы данных в коде (#58518, #58561, #58565, #58451): Продолжается работа над улучшением типизации в ядре фреймворка (хелпер Arr, миграции, команды Console, фасад Cache), что улучшает анализ кода в IDE.
🔹 Безопасность и обслуживание: Внутренние зависимости обновлены для устранения уязвимости в PHPUnit (CVE) и других проблем совместимости (#58526, #58542, #58563).

⚙️ Прочие изменения

Релиз также содержит множество других правок, улучшающих стабильность, тестирование и взаимодействие с разработчиком: улучшения в компоненте InteractsWithData для тестов (#58607, #58608), исправление двойного перевода сообщений об ошибках валидации (#58598), корректная обработка исключений при установке пакетов через Composer (#58609) и многие другие мелкие исправления и улучшения документации.

Что в итоге?

Laravel 12.50.0 — релиз, который приносит ценные практические улучшения (уникальные слушатели, управление appends, фиксы в отношениях) и продолжает курс на более строгую и предсказуемую кодовую базу. Обновление можно установить через composer update.

Полный список изменений можно найти в официальном релизе

📱 @dev_notes_ru

#Laravel #Laravel12
  • 🔥 5
  • ❤ 1
  • 👍 1
More from @dev_notes_ru
  1. Apr 27, 2026Уникальный индекс при мягком удалении: решаем проблему дубликатов При использовании мягког…
  2. Apr 23, 2026Статические переменные в PHP: использование static внутри функций По данным исследования E…
  3. Apr 21, 2026Валидация массивов в Laravel без N+1: Form Request как построитель контекста Применение пр…
  4. Apr 13, 2026JSON в браузере: import или fetch — руководство по выбору Спойлер: import из JSON — это не…
  5. Apr 6, 2026Проксирование fetch() в серверном JavaScript Стандарт Fetch не специфицирует проксирование…
  6. Apr 2, 2026Taskfile: Когда пора отказаться от Makefile (а когда — нет) Makefile — инструмент с почти…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →