Найти в Дзене

Laravel 12.46.0: Разбор ранних январских новинок

Laravel начинает 2026 год не сбавляя темпа! Вышли версии 12.45.1, 12.45.2 и главная звезда — 12.46.0. Это не просто исправления багов, а новые мощные инструменты для работы с массивами, коллекциями и авторизацией. Давайте разберем нововведения, чтобы вы могли сразу применять их в своих проектах. Все изменения обратно совместимы. Одна из частых задач — отфильтровать массив, оставив или удалив конкретные значения. Раньше приходилось писать циклы или использовать `array_filter`. Теперь в хелперах `Illuminate\Support\Arr` есть два новых метода, делающих это в одну строку. Оставляет в массиве только элементы с указанными значениями. Делает обратное — удаляет элементы с указанными значениями. 🔥 Важный нюанс: Оба метода поддерживают строгое сравнение типов через третий параметр `strict: true`. Это спасет от коварных багов. Идеально для: фильтрации конфигов, очистки статусов, санации данных из форм. Работа с коллекциями стала выразительнее. Новый метод `containsManyItems()` дополняет существу
Оглавление

Laravel начинает 2026 год не сбавляя темпа! Вышли версии 12.45.1, 12.45.2 и главная звезда — 12.46.0. Это не просто исправления багов, а новые мощные инструменты для работы с массивами, коллекциями и авторизацией.

Давайте разберем нововведения, чтобы вы могли сразу применять их в своих проектах. Все изменения обратно совместимы.

Новые методы фильтрации массивов по значению

Одна из частых задач — отфильтровать массив, оставив или удалив конкретные значения. Раньше приходилось писать циклы или использовать `array_filter`. Теперь в хелперах `Illuminate\Support\Arr` есть два новых метода, делающих это в одну строку.

Arr::onlyValues()

Оставляет в массиве только элементы с указанными значениями.

-2

Arr::exceptValues()

Делает обратное — удаляет элементы с указанными значениями.

-3

🔥 Важный нюанс: Оба метода поддерживают строгое сравнение типов через третий параметр `strict: true`. Это спасет от коварных багов.

-4

Идеально для: фильтрации конфигов, очистки статусов, санации данных из форм.

Умная проверка коллекций: containsManyItems()

Работа с коллекциями стала выразительнее. Новый метод `containsManyItems()` дополняет существующий `containsOneItem()` и проверяет, содержит ли коллекция более одного элемента.

Простая проверка:

-5

Мощь в callback-функции: Метод может проверить, удовлетворяют ли условию более одного элемента.

-6

Сценарий использования: Валидация, где нужно убедиться, что пользователь выбрал хотя бы два варианта. Метод эффективен и прекращает работу, как находит второй подходящий элемент.

Типобезопасная авторизация с Enum в Gate

Метод `has()` фасада Gate теперь может принимать любые `Enum` (UnitEnum), а не только строки или BackedEnum.

Раньше проверка существования правила была только по строке:

-7

Теперь можно использовать чистые `Enum` для типобезопасности:

-8

Практическая польза: Это открывает возможности для динамической регистрации прав и элегантной организации кода авторизации.

Исправления и улучшения под капотом

Каждый минорный релиз несет важные стабилизирующие правки:

  • 12.45.1: Исправлена работа ResourceCollection при передаче простого массива вместо коллекции моделей.
  • 12.45.2: Починены методы Validator::appendRules() и toArray() для AnonymousResourceCollection.
  • 12.46.0: Исправлено клонирование подключений к БД с префиксом таблиц и добавлены опции блокировок DDL для MySQL.

Итог: Что это значит

  1. Меньше шаблонов: Фильтрация массивов и проверка коллекций теперь в одну строку.
  2. Более надежный код: Строгая типизация в хелперах и использование Enum в Gate предотвращают целый класс ошибок.
  3. Современный стек: Фреймворк продолжает интегрировать лучшие практики и возможности PHP.

Обновление простое и безопасное: composer update laravel/framework.

Changelog:  v12.46.0,  v12.45.2v12.45.1.

#Laravel #Laravel12 #PHP