Подборка свежих новостей, инструментов, видео и материалов из мира PHP.
Приятного чтения!
Выпуски с исправлениями ошибок вышли по расписанию.
Компания Google анонсировала свой новый инструмент онлайн-среды разработки. В комплекте с ним поставляется шаблон Laravel: https://idx.google.com/new/laravel.
Было бы неплохо иметь в наличии среду ванильного PHP и среду ядра PHP.
В будущей версии PhpStorm появится поддержка PER Coding Style, совершенно новая плавающая панель инструментов для рефакторинга, автодополнение терминала для популярных PHP-инструментов и многое другое.
Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся:
В PHP 8.4 можно опускать круглые скобки в цепочке вызовов методов с помощью нового оператора:
1// Так работает2$request = (new Request())->withMethod('GET')->withUri('/hello-world');3 4// Так тоже работает5$request = new Request()->withMethod('GET')->withUri('/hello-world');
В PHP 8.4 появится объектно-ориентированный API и перегрузка операторов для работы с числами произвольной точности.
В PHP 8.4 также появятся четыре новые функции для работы с массивами: array_find(), array_find_key(), array_any()
и array_all().
Benjamin Eberlei и Tim Düsterhus предлагают добавить новый атрибут #[\Deprecated] с необязательными
параметрами message и since.
Последний будет указывать дату или версию, с которой функция или константа устарела. Текущее предложение не включает
поддержку устаревания классов или свойств.
Между тем, существует атрибут #[\JetBrains\PhpStorm\Deprecated] с необязательными параметрами reason, replacement
и since, который поддерживается PhpStorm и статическими анализаторами.

Другие атрибуты для PhpStorm можно посмотреть в репозитории: JetBrains/phpstorm-attributes.
Niels Dossche продолжает совершенствовать модуль DOM. В этом RFC он предлагает добавить поддержку CSS-селекторов, восполнить недостающие, но распространённые функции и добавить новые свойства.
Наличие exit() в качестве языковой конструкции в PHP влечёт за собой несколько несоответствий: её нельзя вызвать с
именованным аргументом, передать в другие функции в качестве callback-функции, она не соблюдает
декларацию strict_types, и, что самое непонятное, она не следует обычной семантике жонглирования типами.
Gina Peter Banyard предлагает сделать exit() стандартной функцией:
1function exit(string|int $status = 0): never {}
buggregator/server – Лёгкий автономный сервер, предоставляющий ряд возможностей по отладке PHP-приложений.
azjezz/assess – Библиотека уведомлений о файловой системе Unix для PHP. Следите за изменениями в файловой системе без каких-либо зависимостей от JS!
neutomic/neutomic – Асинхронный, легкий PHP-фреймворк, предназначенный для работы с длительными процессами. Построенный на основе AMPHP, он обладает удобным API и хорошим инструментарием.
phasync/phasync – Микрофреймворк для сверхпроизводительных PHP-сайтов с
неблокируемым IO.
В комплект поставки входит файл CHATBOT.txt с подсказками, которые помогут вам интегрировать инструмент в ваш
проект.
Также в комплекте есть phasync/file-streamwrapper, чтобы сделать
операции ввода-вывода в существующих проектах асинхронными. Однако это повлияет на производительность, не так ли?
jolicode/automapper – Инструмент для автоматического преобразования объектов в объекты. Выпуск 9.0 содержит множество улучшений DX.
NoiseByNorthwest/php-spx – Простое и понятное расширение для профилирования PHP со встроенным веб-интерфейсом.
PHP-CS-Fixer – Инструмент для автоматического исправления проблем со стандартами кодирования PHP теперь может работать в режиме параллельного выполнения.
TomasVotruba/phpstan-bodyscan – Получение количества ошибок для каждого уровня PHPStan.
TomasVotruba/type-coverage – Расширение PHPStan, требующее минимального покрытия типов.
ProjektGopher/whisky – Инструмент командной строки для управления и внедрения Git-хуков во всей команде.
tomloprod/colority – Лёгкая PHP-библиотека, предназначенная для удобной работы с преобразованиями, валидацией и манипуляциями с цветом.
Infection PHP – Недавнее обновление фреймворка для тестирования мутаций позволяет писать собственные пользовательские мутаторы.
IonBazan/composer-diff – Сравнивает изменения composer.lock и
генерирует отчёт в формате Markdown, чтобы вы могли использовать его в описании PR.
Нажимая «Подписаться» я даю согласие на обработку персональных данных.
Мы заботимся о ваших данных и не будем злоупотреблять доверием.