Январь 2023

Январь 2023

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

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

Новости

Вышли PHP 8.0.27, PHP 8.1.14 и PHP 8.2.1

❗ Это выпуски исправлений безопасности.

What’s Next in PhpStorm: The 2023.1 Public Roadmap

В первом выпуске 2023 года команда JetBrains стремится повысить производительность и ускорить индексирование, добавить интеграцию с 3v4l.org, улучшить поддержку дженериков, а также тегов PHPStan и Psalm.

PHP Core

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

RFC: Dynamic class constant fetch

В PHP 8.3 появится синтаксис для поиска констант классов:

1class Foo {
2 const BAR = 'bar';
3}
4$bar = 'BAR';
5// Новый синтаксис в PHP 8.3:
6echo Foo::{$bar};

RFC: More Appropriate Date/Time Exceptions

Начиная с версии PHP 8.3, при использовании классов Date/Time, PHP будет выбрасывать более специфические исключения, если что-то пойдет не так.

Процедурный стиль функций Date/Time не затрагивается и будет продолжать использовать предупреждения и ошибки, как и сейчас.

📊 RFC: Asymmetric Visibility

Ilija Tovilo и Larry Garfield предложили добавить Swift-подобный синтаксис, позволяющий свойствам иметь отдельную (" асимметричную") видимость для операций чтения и записи.

1class Foo {
2 public private(set) string $bar;
3}

В настоящее время голосование проходит медленно и функция не набирает достаточного количества голосов, чтобы достичь порога в 2/3.

📣 RFC: Add SameSite cookie attribute parameter

George Peter Banyard предлагает добавить параметр SameSite во все соответствующие функции.

Набор из 18 функций/изменений для улучшения ядра PHP

Thomas Hruska реализовал cubiclesoft/php-ext-qolfuncs - набор функций улучшения качества жизни, предназначенных для ядра PHP.

В наборе есть несколько довольно интересных дополнений: str_splice(), str_realloc(), fread_mem(), is_reference(), refcount() и это только некоторые из них. С нетерпением ждём появления официального RFC.

Инструменты

  • amphp/amp 3.0.0 – Неблокирующий параллельный фреймворк для PHP-приложений получил крупное обновление. Теперь он основан на корутинах, использующих файберы вместо генераторов, а также использует revoltphp/event-loop.

    Также были обновлены многочисленные пакеты экосистемы Amphp; вот лишь несколько примеров: amphp/pipeline и amphp/process.

  • PHP-DI 7.0 – В этом обновлении пакета контейнера инъекции зависимостей добавлена поддержка PHP 8.0+, PHPDoc-аннотация @Inject заменена атрибутом #[Inject], добавлена совместимость с PSR-11 2.0 и другие улучшения.

  • php-ffi/var-dumper – Обёртка для symfony/var-dumper, позволяющая сбрасывать типы FFI с помощью функций dd() и dump().

  • olvlvl/composer-attribute-collector – Удобный и практически незатратный способ получения целей атрибутов PHP 8.

  • PHPCSStandards/PHPCSExtra – Коллекция дополнительных правил для использования с PHP_CodeSniffer.

  • cerbero90/enum – PHP-пакет для расширения функциональности перечислений. По сути, это трейт, который вы можете добавить к своим перечислениям, чтобы наделить их множеством полезных функций.

  • NoiseByNorthwest/php-spx – Простой и понятный модуль для профилирования PHP со встроенным веб-интерфейсом.

  • PXP – Супернабор PHP с расширенными возможностями синтаксиса и времени выполнения.

    Ryan Chandler начал с разработки парсера PHP на языке Rust. Проект перерос в целую идею супернабора языков.

    Ранее уже было несколько попыток создать такой суперсет для PHP (marcioAlmada/yay или nunomaduro/plus-1), но этот выглядит довольно многообещающе.

    По всей видимости, существует ещё одна подобная попытка, также разработанная на Rust: Ara Programming Language - статически типизированный язык программирования, который компилируется непосредственно в PHP.

Статьи

Видео

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

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

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