
Подборка свежих новостей и материалов из мира PHP.
В выпуске: PHP теперь использует GitHub для трекинга багов; вышел PhpStorm 2021.3; закончена поддержка PHP 7.3, а 7.4 — в режиме только секьюрити фиксов; для PHP 8.2 снова обсуждается перегрузка операторов — теперь с новым ключевым словом.
Также в выпуске полезные статьи, пачка инструментов, видео и другие новости сообщества.
Приятного чтения!
Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск, плюсаните пост, пожалуйста.
⚡️ Новости
Баги PHP теперь на GitHub
Предложение мигрировать баги с bugs.php.net на GitHub принято практически единогласно.
Раздел php/php-src/issues уже открыт и можно видеть первые созданные баги.
Вышел PhpStorm 2021.3
Мажорное обновление IDE с кучей улучшений. Из основного:
- Полная поддержка PHP 8.1.
- Улучшена поддержка дженериков (особенно для doctrine/collections и eloquent/collections из Laravel 9).
- Рефакторинг перемещения классов и неймспейсов с помощью drag-and-drop.
- Инструменты удаленной разработки.
- Улучшения деплоймента и других подсистем.
Проверки PhpStorm можно запускать в CI благодаря Qodana for PHP — это отдельный инструмент от JetBrains, который работает на движке PhpStorm. Можно использовать, например, для поиска проблем совместимости с PHP 8.0 / 8.1.
Закончена поддержка PHP 7.3
Для PHP 7.4 активная поддержка тоже завершена, но еще в течение года будут выходить исправления проблем безопасности в случае их обнаружения.
phpreleases.com — На этом ресурсе есть API для получения информации о поддерживаемых версиях PHP.
[RFC] User Defined Operator Overloads
Снова на обсуждении предложение добавить перегрузку операторов в PHP. На этот раз довольно интересный хоть и спорный подход.
Раньше предлагалось для каждого оператора определить магический метод, например,__add()
для+
или__mul()
для*
.
В текущей редакции RFC предлагается ввести новое ключевое словоoperator
. Оно используется вместоfunction
и по сути делает то же самое, но позволяет использовать символы операторов вместо имен функций.
class Collection { // Ранее предлагалось вот так function __add(Collection $other, OperandPosition $operandPos) {} // А теперь вот так operator +(Collection $other, OperandPosition $operandPos) {} }
Нужна ли в PHP перегрузка операторов? Есть ли применение в ваших приложениях?
2022 PHP Landscape Report Survey
Ежегодный опрос PHP-сообщества от Zend.
Скоро будет запущен опрос русскоязычного сообщества от spasibo_kep и PHP-чатов/каналов, ну а пока можно заполнить опрос от Zend.
Начата работа над PSR стандартом для i18n
Задачи интернационализации и локализации встречаются повсеместно и иметь общий стандарт было бы отлично.
Пока сформирован мета-документ, в котором описаны цели и не-цели стандарта. А также собирается рабочая группа, в которую среди прочих вошел samdark.
? Инструменты
- Доступны официальные докер-образы PHP 8.1.
- aimeos/macro — Трейт для расширения классов с помощью замыканий. Аналог
Macroable
из фреймворка Laravel. - Xhprof-UI.js — Веб-интерфейс для быстрого анализа дампов профайлера XHProf.
- marcj/topsort.php — Библиотека для быстрой топологической сортировки элементов. Может быть использована для разрешения зависимостей.
- maglnet/ComposerRequireChecker — Инструмент проверит, что все используемые зависимости вашего проекта указаны явно в
composer.json
. - ArtARTs36/php-merge-request-linter — Инструмент для валидации merge/pull-реквестов.
- MarkBaker/EnumHelper — Несколько полезных трейтов для использования в перечислениях PHP 8.1.
? Зло ли трейты или нет — мы уже обсуждали на стриме.
Но вот теперь вопрос: зло ли трейты в енамах?
Symfony
- symfony/demo 2.0 — Официальное демо-приложение от Symfony обновлено и теперь использует Symfony 6.0. Приложение следует всем рекомендованным практикам.
- eXsio/php-symfony-arc — А это другой пример демо-приложения. Тут также сделан блог на Symfony 6, но реализована ентерпрайз-архитектура для крупных и масштабируемых приложений.
Подробнее в постах автора PHP: Symfony Demo meets Modular, Microservice-ready Architecture — Part 1, Part 2.
- Introducing Docker support — Symfony Flex теперь может автоматически генерировать и обновлять
docker-compose.yml
для проекта. - loophp/repository-monadic-helper — Расширение для Doctrine, позволяющее использовать репозитории в функциональном стиле с помощью монад.
Laravel
- cybercog/laravel-ban — Пакет позволит быстро сделать блокирование (бан) для eloquent-модели.
- A complete guide to Laravel Sail — Подробный разбор обёртки над докером — Laravel Sail.
- Kubernetes, Helm, Laravel, PHP-FPM, Nginx, GitLab the DevOps Way
- ?? Что нового в Laravel Collections.
- ? Using a Laravel REST API with a NuxtJs App
Yii
- yiisoft/di — DI-контейнер совместимый с PSR-11 от команды Yii.
? Статьи
Строим эффективный сетевой обмен в PHP-микросервисах
Самые заметные изменения языка php за последние годы.
- На adventofcode.com каждый день открывается по одной интересной задаче по программированию.
Larry Garfield публикует разбор и решения задач на PHP в функциональном стиле.
? Аудио/Видео
- ? PHP in 2021 — Новое видео от Brent Roose. Также в виде статьи.
- ? Working with the JIT Compiler — Советы по работе с JIT.
- ??? PHP и Laravel дайджест ноябрь 2021.
- ??? Spiral Ecosystem news #1: RoadRunner + CycleORM + Spiral Framework stream
- ??? BeerPHP SPb Meetup #3: Дмитрий Елисеев — «Вертикальное разделение кода», Владимир Закотнев (Лента.Онлайн) — Про SQL-инъекции, Сергей Кирьяков (Лента.Онлайн) — Микросервисы и RabbitMQ, Денис Пенкин (DPROMO) — Про кеширование.
? Сообщество
- Shardj/zf1-future — Ребятки поддерживают форк ZendFramework 1 совместимый с PHP 8.
Потрясающее будущее PHP-стека для карьеры
Подписывайтесь на Telegram-канал PHP Digest.
Этот дайджест подготовлен совместно с Insolita. Если вам понравился выпуск, подпишитесь на Юлию в твиттере и поставьте плюс в пост, пожалуйста.Заметили ошибку или опечатку? Сообщите в личку хабра или телеграм.
Прислать ссылку можно через форму или просто написав мне в телеграм.
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест №216