Май 2024

Май 2024

Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

Приятного чтения!

Новости

Вышли PHP 8.2.19 и PHP 8.3.7

Выпуски с исправлениями ошибок вышли по расписанию.

Проект IDX

Компания Google анонсировала свой новый инструмент онлайн-среды разработки. В комплекте с ним поставляется шаблон Laravel: https://idx.google.com/new/laravel.

Было бы неплохо иметь в наличии среду ванильного PHP и среду ядра PHP.

Открыта программа раннего доступа PhpStorm 2024.2

В будущей версии PhpStorm появится поддержка PER Coding Style, совершенно новая плавающая панель инструментов для рефакторинга, автодополнение терминала для популярных PHP-инструментов и многое другое.

PHP Core

Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся:

RFC: new MyClass()->method() without parentheses

В PHP 8.4 можно опускать круглые скобки в цепочке вызовов методов с помощью нового оператора:

1// Так работает
2$request = (new Request())->withMethod('GET')->withUri('/hello-world');
3 
4// Так тоже работает
5$request = new Request()->withMethod('GET')->withUri('/hello-world');

RFC: Support object type in BCMath

В PHP 8.4 появится объектно-ориентированный API и перегрузка операторов для работы с числами произвольной точности.

RFC: array_find

В PHP 8.4 также появятся четыре новые функции для работы с массивами: array_find(), array_find_key(), array_any() и array_all().

📊 RFC: #[\Deprecated] Attribute

Benjamin Eberlei и Tim Düsterhus предлагают добавить новый атрибут #[\Deprecated] с необязательными параметрами message и since. Последний будет указывать дату или версию, с которой функция или константа устарела. Текущее предложение не включает поддержку устаревания классов или свойств.

Между тем, существует атрибут #[\JetBrains\PhpStorm\Deprecated] с необязательными параметрами reason, replacement и since, который поддерживается PhpStorm и статическими анализаторами.

Другие атрибуты для PhpStorm можно посмотреть в репозитории: JetBrains/phpstorm-attributes.

📣 RFC: New ext-dom features in PHP 8.4

Niels Dossche продолжает совершенствовать модуль DOM. В этом RFC он предлагает добавить поддержку CSS-селекторов, восполнить недостающие, но распространённые функции и добавить новые свойства.

📣 RFC: Transform exit() from a language construct into a standard function

Наличие 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.

Symfony

Laravel

Другие фреймворки

  • Вышел Yii 2.0.50 – Минимальная версия PHP теперь повышена до 7.3.

Статьи

Видео

Сергей Пантелеев
Релиз-менеджер PHP 8.2
Роман Пронский
Администратор PHP Foundation
Краткий дайджест в нашем Telegram
Ещё больше новостей в блоге компании JetBrains
PHP-дайджест в видео формате на канале CutCode
Рассылка PHP-дайджестов
Подпишитесь на рассылку, чтобы не пропустить новый выпуск

Нажимая «Подписаться» я даю согласие на обработку персональных данных.

Мы заботимся о ваших данных и не будем злоупотреблять доверием.