Всем привет! Краткий обзор новостей из мира PHP и Laravel за август 2023 г.
PHP Дайджест
Вышли PHP 8.0.30, PHP 8.1.22 и PHP 8.2.9
В этих выпусках исправлена уязвимость при загрузке внешних сущностей в XML без соответствующего разрешения и неправильное управление буфером в функции phar_dir_read.
Вышел первый релиз кандидат PHP 8.3.0
Релиз менеджеры PHP 8.3 Якуб Зеленка и Эрик Ман создали ветку PHP-8.3 в репозитории, теперь вся разработка по релизу будет вестись в ней.
Мастер ветка теперь нацелена на следующую версию PHP.
RFC Vote
Брент Руз и Роман Пронский запустили проект, позволяющий любому желающему проголосовать за RFC.
В то время как в официальном голосовании по RFC могут принять участие только люди, активно участвующие в PHP, RFC Vote предоставляет возможность высказаться всем желающим. Это не окажет прямого влияния на официальные результаты RFC, но может послужить ценной информацией для тех, кто принимает решения.
Сейчас на сайте представлены три уже отклоненных RFC, которые можно обсудить.
Вышел WordPress 6.3 Lionel
В новой версии появился мощный и улучшенный редактор сайтов, добавлена функция блокировки предварительного просмотра тем, упрощено создание и синхронизация шаблонов, интегрированы новые инструменты для улучшения существующих проектов и многое другое.
Вышел PhpStorm 2023.2
В новой версии добавлен AI Assistant, призванный расширить возможности программирования в IDE с помощью искусственного интеллекта. Текущий набор функций AI Assistant включает в себя чат-бота, автоматическое создание документирующих комментариев, предложение имен, генерацию сообщений коммитов и многое другое.
Команда PhpStorm улучшила поддержку дженериков, оптимизировала генерацию PHPDoc блоков, добавила встроенную поддержку Laravel Pint и многое другое.
Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся.
RFC: Support optional suffix parameter in tempnam
Атос Рибейро предлагает добавить в функцию tempnam новый необязательный параметр suffix.
Суффикс может обеспечить еще большую семантическую ценность или контекст для пользователя, просматривающего сгенерированные файлы, и, в определенных ситуациях, даже предоставить дополнительный контекст для программ, обрабатывающих такие файлы. В настоящее время пользователи могут добавлять только префикс.
Вышел Filament 3
Это крупный выпуск с множеством новых функций и улучшений. Команда обновила дизайн каждого шаблона Blade в проекте.
Команда улучшила работу с модальными окнами, таблицами, панелями и многое другое.
Для работы Filament 3 потребуется Laravel 10 и выше, Livewire 3 и PHP 8.1 и выше.
The State of Laravel Survey
Тобиас Петри запустил ежегодное исследование по Laravel. В прошлом году более 2.5 тысяч разработчиков приняло участие в опросе.
Laravel дайджест
10.16. Schedule:list command
Новая команда для отображения всех запланированных задач.
10.16. Collection::groupBy method
Пофиксили проблему в eloquent коллекциях - в том случае когда мы через groupBy использовали ключ на котором висел каст трансформации в enum.
10.17. Laravel Prompts
Теперь Laravel Prompts интегрирован прямо в коробку Laravel. Мой обзор этого пакета смотрите в видео.
10.17. Config show command
Новая команда позволяет быстро посмотреть содержимое определённого конфига.
10.17. Collection::ensure method
В рамках коллекции появился новый метод ensure, который позволяет нам проверить все элементы коллекции на указанный тип.
10.19. Word wrap string method
Позволяет добавлять переносы строки если её длина больше чем указано в параметре метода.
10.19. Percentage method в коллекциях
Новый метод, который помогает вычислить в рамках условия сколько раз оно выполняется на всех элементах коллекции.
10.19. withDelay() method
Метод withDelay() позволяет нам указать задержку перед выполнением логики листнера.
10.20. SoftDeletes у отношений MorphTo
Появилась возможность использовать SoftDeletes методы withTrashed(), withoutTrashed(), onlyTrashed().
10.20. MergeWhen() method
С помощью этого метода мы можем объединять что-либо в исходный массив если выполняется условие.
10.20. BenchMark::Value() method
Удобный метод чтобы проверить производительность.
10.20. CreateOrFirst method
В Eloquent появился новый метод. Изначально минуем запрос нахождения записи и сразу делаем Create. Если же возникает ошибка уникальности, то тогда уже выполняем первое условие и ищем эту запись.
10.21. Короткий синтаксис в Blade для false значения
Можно использовать ! для этого.
Видео версия дайджеста: