
PHP и Laravel дайджест новостей за октябрь 2023 года / Хабр
Всем привет! Краткий обзор новостей из мира PHP и Laravel за октябрь 2023 г.
PHP Дайджест
Вышли PHP 8.1.25 и PHP 8.2.12
В этих выпусках несколько исправлений ошибок и улучшений в модулях Core, CLI, CType, DOM, Fileinfo, Filter, Hash, Intl, MySQLnd, Opcache, PCRE, SimpleXML, Streams, XML и XSL.
Вышел пятый релиз кандидат PHP 8.3.0
Очередной релиз-кандидат вышел в соответствии с графиком. Шестой RC ожидается 9 ноября и станет последним перед финальным релизом PHP 8.3.
Подробный список того, что появится в PHP 8.3, можно найти на сайтах php.watch или stitcher.io.
SjonHortensius/phpshell стал публичным
Репозиторий phpshell, на базе которого работает сайт 3v4l.org стал общедоступен.
Symfony исполнилось 18 лет
18 октября 2005 года был сделан первый публичный коммит проекта Symfony.
Открыта программа раннего доступа PhpStorm 2023.2
В первой версии EAP улучшена поддержка PHP 8.3, добавлен мастер создания новых проектов для Symfony и поддержку преобразования аннотаций Doctrine в атрибуты.
Ядро PHP
Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся:
📣RFC: Rounding Integers as int
На данный момент функции округления round, ceil и floor возвращают число с плавающей точкой, но при использовании целых чисел выше 2^53 получаются неожиданные результаты из-за потери точности. Marc Bennewitz предлагает выполнять округление для заданного целого числа и возвращать полученное целое число, если это возможно.
📣RFC: Unbundle ext/imap, ext/pspell, ext/oci8, and ext/PDO_OCI
Derick Rethans предлагает удалить модули из ядра PHP и перенести в репозиторий PECL.
📣RFC: Multibyte for trim function mb_trim, mb_ltrim and mb_rtrim
Yuya Hamada предлагает добавить многобайтовую поддержку для функций обрезки.
📣RFC: RFC1867 for non-POST HTTP
RFC1867 определяет тип контента multipart/form-data. PHP поддерживает анализ этого типа контента, но только для POST-запросов. Если осуществляется POST-запрос и тип содержимого multipart/form-data, тело запроса немедленно обрабатывается перед запуском PHP-скрипта и заполняется в суперглобальные переменные $_POST и $_FILES. Эта функция запускается автоматически и не предоставляется непосредственно пользователю.
Ilija Tovilo предлагает добавить новую функцию request_parse_body(), чтобы вывести существующую функциональность на пользовательский уровень и использовать ее для других HTTP-методов.
📣RFC: Change the edge case of round()
Saki Takamachi предлагает изменить поведение функции round в крайних случаях и перестать ожидать от чисел с плавающей точкой десятичного поведения и начать ожидать, что числа с плавающей точкой будут вести себя как числа с плавающей точкой.
✅RFC: Increasing the default BCrypt cost
RFC о котором мы говорили в прошлом выпуске принят единогласно. Большинством голосов было принято, что в PHP 8.4 значение cost по умолчанию будет увеличено до 12.
✅RFC: A new JIT implementation based on IR Framework
Ещё один RFC из прошлого выпуска также принят единогласно в обоих голосованиях: в PHP 8.4 появится новая реализация JIT, тем временем старая реализация будет удалена.
Laravel дайджестLaravel дайджестОбновления Laravel
В этом месяце вышло три релиза (10.26 — 10.28). Они большие, но в основном это фиксы — где-то что-то поправили — в док-блоках, в аннотациях и добавили тесты. В Git workflow обновили Git auto-commit action с четвертой на пятую версию.
10.26. Vendor::Publish prompt
Взглянем на поиск в команде vender::publish. Бывает, что в огромном списке нужно выбрать определённую цифру и указать, что именно из vendor service provider необходимо опубликовать. Теперь есть vendor publish с новым Laravel Prompt, где появился поиск. Теперь быстро можно найти что нам требуется и сразу опубликовать все необходимые файлы от vendor service provider. С таким поиском передавать опцию с namespace провайдера больше не надо.
10.26. Route::List -vv option
Прокачали artisan команду Route::list. Появилась опция -vv, которая выведет развёрнутую информацию по применённым к роутам мидлварам.
Artisan.page
Вышел проект по Artisan-командам в Laravel. На нём собраны все Artisan команды и все возможные опции и аргументы которые у них есть. Многих из них нет в официальной документации, а на этом сайте есть! Реализована удобная навигация. Для тех, кто любит быстро и удобно что-то генерировать в одну команду.
Видео версия дайджеста:


