Команда Laravel выпустила обновление v12.53.0. Этот релиз получился насыщенным: он добавляет новые возможности для работы с JSON-схемами и очередями, исправляет ряд неприятных багов и содержит несколько важных внутренних улучшений.
Ключевые нововведения
🔹Контроль параллелизма с любым кэшем: Добавлен метод
Cache::funnel() для ограничения одновременного выполнения задач (throttling) с использованием любого драйвера кэша. Раньше такая возможность была только у Redis через RedisThrottle, теперь она универсальна (#58439).🔹Улучшена работа с JSON Schema: Добавлена поддержка ключей
multipleOf для числовых типов (#58903) и uniqueItems для массивов (#58922). Это делает генерацию и валидацию сложных JSON-схем более точной и стандартизированной.🔹Полнотекстовый поиск по векторам: В
whereFullText() добавлена опция для работы с предварительно вычисленными tsvector колонками в PostgreSQL. Это ускоряет поиск, если векторы обновляются не в реальном времени (#58893).🔹Именованные аргументы в событиях: Теперь при диспатче событий и их трансляции можно использовать именованные аргументы, что повышает читаемость кода при работе с конструкторами событий (#58913).
🔹Поддержка сериализуемых классов в кэше: Внесены доработки для корректной работы с классами, реализующими интерфейс
Serializable, при помещении их в кэш (#58911).Существенные исправления
🔹Исправлена сериализация моделей в очередях: Устранена проблема, из-за которой при определенных условиях сериализация модели в задании очереди могла работать некорректно (#58939).
🔹Исправлена работа
RetryCommand для SQS FIFO: Команда повторной обработки проваленных заданий теперь корректно работает с очередями SQS FIFO (#58936).🔹Устранена проблема с deadlock в транзакциях: Добавлен откат "зависшей" PDO-транзакции перед повторной попыткой коммита при deadlock. Это повышает надежность работы с БД в высоконагруженных сценариях (#58906).
🔹Исправлена гонка при создании кэша real-time фасадов: Устранен редкий баг, который мог приводить к ошибкам при конкурентном создании файла кэша для фасадов (#58947).
Улучшения для разработчиков
🔹Тестирование сессий: Метод
assertSessionHasAll() при провале теста теперь показывает все несовпадающие значения, а не только первое. Это экономит время при отладке (#58946).🔹Очереди: В выводе команды
queue:monitor теперь гарантированно отображается значение oldest_pending для лучшего мониторинга "застрявших" заданий (#58952).🔹JSONP Check: Добавлена проверка для корректной работы с JSONP-запросами, повышающая безопасность и совместимость (#58971).
🔹Команда
down: Теперь поддерживает обновление опций режима обслуживания без необходимости повторного ввода всех флагов (#58918).Итог: Это мощный минорный релиз, который будет полезен практически всем. Обновление настоятельно рекомендуется, особенно если вы используете JSON Schema, очереди или сложную валидацию.
#Laravel #Laravel12

