Подборка свежих новостей, инструментов, видео и материалов из мира PHP.
Приятного чтения!
Выпуски с исправлением ошибок вышли по расписанию.
⛔️ Ветка PHP 8.1 прекратила активную поддержку и будет получать только обновления с исправлениями безопасности.
В этом большом обновлении представлена официальная версия AI Assistant, добавлена поддержка Pest и PHP 8.3, улучшена поддержка Symfony, улучшен интерфейс и многое другое.
В этом выпуске добавлена поддержка PHP 8.3, Flame-графиков и управляющих сокетов.
Современный сервер PHP-приложений, написанный на Go, позволяет создать PHP-сервер с помощью всего одной команды.
Основной разработчик CodeSniffer решил отказаться от проекта, но, к счастью, видный член сообщества, Juliette Reinders Folmer, перенесла разработку в новую организацию, PHPCSStandards. Работа над инструментом будет продолжена в репозитории PHPCSStandards/PHP_CodeSniffer.
Имя пакета composer пока не изменится; нет необходимости менять ваши зависимости.
Juliette и соавторы уже выпустили PHP_CodeSniffer 3.8.0 с множеством улучшений.
Большинство новостей ядра PHP подробно освещаются в серии PHP Core Roundup от PHP Foundation, мы лишь быстро по ним пробежимся:
Max Semenik предлагает добавить новый атрибут #[NotSerializable] для предотвращения сериализации класса.
Это может помочь писать меньше кода и лучше анализироваться статическими анализаторами:
1#[NotSerializable]2class MyClass3{4}5 6serialize(new MyClass()); // Exception: Serialization of 'MyClass' is not allowed
В настоящее время политики в отношении голосования по RFC, процесса выпуска, классификации безопасности и рекомендаций по именованию хранятся в разных местах.
Derick Rethans предлагает создать новый Git-репозиторий, чтобы собрать все политики в одном месте.
Niels Dossche предлагает разрешить методам XSLTProcessor::registerPHPFunctions() и DOMXPath::registerPhpFunctions()
использовать тип callable.
Отчасти из-за сложности постановки вопроса RFC был отклонён.
После получения обратной связи Daniil Gentili выбрал основное направление и
предложил новую версию RFC: сделать все
анонимные классы по умолчанию окончательными, предоставить необязательное ключевое слово open, чтобы сделать их
неокончательными (как в Kotlin, new open class {}).
PHP 8.4 будет поставляться с отключенным по умолчанию JIT, за счёт установленной опции opcache.jit=disable, а значение
опции jit_buffer_size по умолчанию будет увеличено до 64.
В настоящее время JIT работает в режиме tracing, но по умолчанию отключён с помощью опции opcache.jit_buffer_size=0.
Валентин Удальцов реализовал обращение к объектам, созданным через new, не оборачивая их в скобки.
Во избежание неоднозначности это будет работать только при наличии скобок аргументов конструктора.
Поддерживаются также динамические имена классов и анонимные классы.
Предложение ещё не оформлено в RFC.
PHP Foundation собирается пересмотреть способ установки модулей в PHP.
В настоящее время модули распространяются с помощью устаревшего сайта pecl.php.net и
инструмента pecl.
Цель состоит в том, чтобы предоставить современную альтернативу, которая будет проще в использовании как для
пользователей, так и для разработчиков модулей.
staabm/phpstan-todo-by – Инструмент, позволяющий оставлять
комментарии todo с датами истечения срока действия. Пока не выяснилось, что существуют языки программирования, такие
как Gleam, которые предоставляют функцию todo в качестве языковой
функции.
spatie/image v3 – Управляйте изображениями с помощью выразительного API. V3 больше
не зависит от league/glide.
bpolaszek/bentools-etl – Библиотека ETL (Extract / Transform / Load) с принципами SOLID + почти полное отсутствие зависимостей.
samdark/php-fpm_tuner – Скрипт, который помогает настроить конфигурацию PHP-FPM на основе доступной памяти, ядер процессора и количества памяти, потребляемой воркерами.
super-linter/super-linter – Комбинация линтеров, которую можно установить как GitHub Action. Это может быть полезно, если у вас проекты, использующие разные языки.
gherkins/regexpbuilderphp – Человекочитаемый конструктор регулярных выражений.
maximal/taran – Простой инструмент для нагрузочного тестирования веб-приложений.
serversideup/docker-php – Готовые к продакшену образы Docker для PHP.
OrbStack – Лёгкая альтернатива Docker Desktop.
mnapoli/sqlite-s3 – Бессерверная база данных для разработчиков: SQLite, поддерживаемая S3.
typhoon-php/overloading – Реализация функции перегрузки недостающих методов в PHP.
Вышел yiisoft/db-migration 1.0
Первый стабильный релиз миграций на базе yiisoft/db.
Из коробки поддерживаются следующие СУБД:
Пакет предоставляет возможность работы с миграциями как через консоль Yii или Symfony, так и через отдельную независимую утилиту.
Вышел yiisoft/injector 1.2
Пакет теперь может работать без контейнера, для работы теперь не требуются никакие зависимости.
Более подробно новости Yii освещаются в канале «Хроники Yii3».
Нажимая «Подписаться» я даю согласие на обработку персональных данных.
Мы заботимся о ваших данных и не будем злоупотреблять доверием.