Добавить в корзинуПозвонить
Найти в Дзене

Метод коллекции `hasSole()` в Laravel 12.49.0

Выпуск Laravel v12.49.0 вводит новый метод коллекций hasSole() для проверки наличия ровно одного подходящего элемента. Также добавлены: поддержка подзапросов между столбцами, цепочный метод preserveKeys() для ресурсных коллекций, поддержка даты/времени для команды down --retry и расширенная поддержка перечислений (enum) в компонентах сессии и кэша. Выпуск включает исправление утечки памяти в Arr::dot(). Новый метод hasSole() проверяет, содержит ли коллекция ровно один элемент, соответствующий критериям. Метод заменяет устаревший containsOneItem() и использует те же сигнатуры, что и sole(). Построитель запросов получил метод whereBetweenColumns() для сравнения результата подзапроса с динамическими значениями двух столбцов таблицы. Класс AnonymousResourceCollection теперь включает метод preserveKeys() для fluent-конфигурирования. Опция --retry команды php artisan down теперь принимает строки даты/времени, а не только секунды. При указании прошедшей даты выводится предупреждение. Команда
Оглавление

Выпуск Laravel v12.49.0 вводит новый метод коллекций hasSole() для проверки наличия ровно одного подходящего элемента. Также добавлены: поддержка подзапросов между столбцами, цепочный метод preserveKeys() для ресурсных коллекций, поддержка даты/времени для команды down --retry и расширенная поддержка перечислений (enum) в компонентах сессии и кэша. Выпуск включает исправление утечки памяти в Arr::dot().

Основные нововведения

1. Метод hasSole() для коллекций

Новый метод hasSole() проверяет, содержит ли коллекция ровно один элемент, соответствующий критериям. Метод заменяет устаревший containsOneItem() и использует те же сигнатуры, что и sole().

-2

2. Подзапросы между столбцами

Построитель запросов получил метод whereBetweenColumns() для сравнения результата подзапроса с динамическими значениями двух столбцов таблицы.

-3

3. Цепочный метод preserveKeys() для ресурсных коллекций

Класс AnonymousResourceCollection теперь включает метод preserveKeys() для fluent-конфигурирования.

-4

4. Поддержка даты/времени для команды down --retry

Опция --retry команды php artisan down теперь принимает строки даты/времени, а не только секунды.

-5

При указании прошедшей даты выводится предупреждение.

5. Расширенная поддержка Enum

  • Сессии: Методы now() и flash() теперь принимают enum в качестве ключей
  • Кэш: Методы Cache::flexible() и Cache::withoutOverlapping() теперь также поддерживают enum-ключи .

6. Команда db:table с поиском

Команда php artisan db:table теперь использует поисковую подсказку для выбора таблицы, что удобно при работе с большими базами данных.

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

Исправления:

  • Утечка памяти в Arr::dot()
  • Использование безопасных для многобайтных строк функций в Str::afterLast()
  • Очистка скомпилированных представлений после параллельного тестирования
  • Пропуск сериализации сообщений, если уровень лога не обрабатывается
  • Игнорирование взаимоблокировок при освобождении DatabaseLock
  • Использование присваивания вместо мутации для неизменяемых объектов Carbon

Улучшения:

  • Сохранение единого экземпляра NotificationSender для повышения производительности
  • Сделали метод QueueFake::assertPushedTimes публичным
  • Улучшена валидация подсказок индексов для нескольких индексов
  • Добавлена отсутствующая документация @param к конструктору SessionGuard
  • Обновлена зависимость tar с версии 7.5.3 до 7.5.6

Откаты:

  • Отменена функция "алиасинг при выборе выражений базы данных".

Примечания по обновлению

Критических изменений, требующих правки кода в типовых приложениях, не ожидается. Для получения полной информации рекомендуется ознакомиться с полным списком изменений.