Подборка свежих новостей, инструментов и материалов из мира PHP.
Приятного чтения!
Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск, плюсаните пост, пожалуйста.
⚡️ Новости
-
PHP version stats: January, 2022
Свежая статистика по версиям PHP по данным с packagist.org. Версия 8.1 вышла всего месяц назад, но уже набирает 9.1%. Однако, всё ещё очень много PHP 7.4 (44%).
Спасибо Пятиминутка PHP.
-
[RFC] User Defined Operator Overloads
Судя по ходу голосования предложение добавить перегрузку операторов в PHP не будет принято. Но автор заверил, что в таком случае выпустит реализацию в качестве расширения и продолжит работу.
Ну а пока перегрузку операторов уже можно использовать с помощью lisachenko/z-engine. Вот пример реализации операторов для матриц: lisachenko/native-php-matrix
???? Инструменты
-
viewi/viewi — Мощный инструмент для создания реактивных приложений используя только PHP и HTML.
По сути, это серверный шаблонизатор + фронтенд фреймворк. Но только все компоненты и всю логику вы описываете на PHP и HTML и затем они транспайлятся в нативный JS.
На сайте проекта viewi.net подробно описан механизм работы и есть примеры кода. Также можно пройти пошаговый туториал.
- symfony/html-sanitizer — Новый компонент для очистки недоверенного HTML и защиты от XSS.
- Infection PHP 0.26.0 — Обновление фреймворка для мутационного тестирования на PHP. В новой версии добавлены HTML-отчеты, мутация только измененных строк, и другое.
- EventSaucePHP/ObjectHydrator — Библиотека для гидрации сырых данных (типа json) в объекты.
- Roach PHP — Библиотека для web-скрапинга, порт популярной Python-библиотеки Scrapy.
- Orangesoft-Development/backoff — Реализация алгоритма экспоненциальной выдержки (back-off algorithm).
- ajthinking/archetype — Пакет с простым интерфейсом для модификации PHP файлов/классов.
- framjet/php-enum-bitmask — Использование перечислений из PHP 8.1 как битовых масок.
- beyondcode/httpdump — Приложение на Laravel для отладки входящих HTTP-запросов (отладка веб-хуков и т.п.). Создает случайные URL и дампит в красивом виде все запросы к ним. Демо httpdump.app.
- ankitpokhrel/tus-php 1.0 — Реализация сервера и клиента tus.io открытого протокола возобновляемых загрузок файлов. Протокол используется, например, в Vimeo и Cloudflare.
Symfony
-
Выложен в опенсорс инструмент symfony-cli
Кроме специфических для Symfony задач, инструмент включает веб-сервер, который можно использовать как современную альтернативу MAMP/WAMP: поддерживает нескольких версий PHP (в каждом проекте можно указывать свою), есть интеграция с Docker, локальные домены, автоматический HTTPS. Инструмент реализован на Go, поддерживается Linux, macOS и Windows.
- Итоги года Symfony 2021
- Запущен новый сайт symfonystation.com. Там периодически публикуются дайджесты новостей по Symfony.
- Symfony Messenger ???? systemd
- Use PHP Enums as Doctrine type in Symfony
- Build Symfony and Doctrine ORM Applications with ease using Ecotone
- ???????? Организация миграций Doctrine — Полезный совет от канала Пых (Валентина Удальцова).
Laravel
- rezaamini-ir/migrator — GUI-менеджер миграций. Позволяет создавать, удалять, запускать миграции из веб-интерфейса.
- getcandy/getcandy — E-commerce платформа на Laravel.
- Primitive Types in Controllers and Closure Routes
- How does Treblle scale on AWS without breaking the bank? — История масштабирования проекта на сервисах AWS и Laravel.
- ???? 45 советов и трюков по Laravel 2022
Yii
- Новости Yii 2021, выпуск 4 — итоги года.
- Подъехал еще один пакет из Yii 3: yiisoft/router.
???? Статьи
- Как создавать поддерживаемые приложения на PHP и отвязать бизнес-логику от фреймворков.
- How we are adding Async PHP to our Stack — Обзор асинхронного PHP с плюсами и минусами подходов. В итоге остановились на RoadRunner + Symfony MicroKernel.
- Осмысление 8 уровней логирования в PHP — Скорее всего вам понадобятся только 4.
- Phabel vs. Rector — Что лучше для транспайлинга PHP-кода на более старые версии.
- “Yield” и деликатная работа с памятью в PHP — Статья слабая, а вот в комментариях толковые объяснения генераторов
- Создаем библиотеку на php и публикуем на packagist
- Иногда чтобы понять, что происходит в коде, может быть полезно посмотреть в генерерируемые опкоды. Поможет команда
phpdbg -p* file.php
.
???? Аудио/Видео
- ???????????? Пятиминутка PHP: Оптимизация производительности в Composer 2.2 — Почему новый Composer работает до 90% быстрее, и что делать если наоборот стало медленнее.
???? Сообщество
- ????????????
Опрос: Чем запомнился PHP в 2021 году? — Опрос еще можно пройти и получить призы участникам. - ???????????? PHP и Laravel дайджест новостей за декабрь и итоги 2021 года на канале CutCode.
Подписывайтесь на Telegram-канал PHP Digest.
Этот дайджест подготовлен совместно с Insolita. Если вам понравился выпуск, подпишитесь на Юлию в твиттере и поставьте плюс в пост, пожалуйста.
Заметили ошибку или опечатку? Сообщите в личку хабра или телеграм.
Прислать ссылку можно через форму или просто напишите мне в телеграм.
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест №218
Комментарии (5)
Ionenice
11.01.2022 17:01Как-то надоедают пустые статьи где либо ничего нету, либо одна вода. Статья называется "How we are adding Async PHP to our Stack", внутри статьи краткое описание нескольких доступных инструментов и бесполезные результаты нагрузочного тестирования одного абстрактного эндпоинта... на этом статья закончилась. Наверно "experienced PHP developers who have a solid knowledge of the language" не учавствовали в написании статьи.
Немного печально, что хороших статей по Async Php очень мало, хотя это всё очень привлекательно звучит и было бы интересно почитать про подобный опыт
shandy
11.01.2022 20:42А о чем конкретно из async php хотелось бы почитать?
Я как раз собираюсь подготовить серию статей по мотивам моего доклада с конференции про Swoole. Вот думаю куда смещать акцент - больше практических результатов или больше теории.
Ionenice
11.01.2022 20:51+1Наверно, хотелось бы, чтобы практика просто была в статьях, с реальными примерами и опытом. Какие проблемы возникали и как их решали, какие преимущества нашли и довольны ли текущим состоянием или предпочли ли другие технологии, языки.
Мне хочется попробовать всё это самому, но пока не хватает желания, времени, и, возможно, опыта, а если начать самому, то до прода это дайдёт не скоро и явно в каких-то мелких проектах в качестве эксперимента :)
А так на swoole засматриваюсь, но скорее всего в виде Octane
Grikdotnet
11.01.2022 21:36По названию статьи про roadrunner понятно, что авторы не знают о чем пишут. Roadrunner синхронный. Это application server, его отличие от cgi-модели (modphp, fpm) в отсутствии очистки памяти после обработки запроса. А runtime обычный синхронный, с блокирующими вызовами.
spasibo_kep
Опрос сообщества завершён на отметке 3100 ответов, начали подводить итоги: детали в феврале.