PHP Fart Time
Ir al canal en Telegram
Привет, фартаны! Дурачимся, пилим OpenSource и рассказываем про пердовые технологии в php. Авторы контента: @roxblnfk и @butschster
Mostrar más1 966
Suscriptores
-124 horas
-17 días
+730 días
Archivo de publicaciones
1 966
#ТоксикСреда
Одна из величайших проблем PHP
Кто голосует за PHP RFC?
Кто решает, каким PHP станет?
А зайдите и посмотрите на RFC по дженерикам и тред обсуждения.
Голосовали ПРОТИВ:
Из PHP Core и Foundation:
- Derick Rethans — Xdebug, release manager.
- Tim Düsterhus — core C-слой.
- Matteo Beccati — core/security.
- Gina Banyard (girgias) — core, автор конкурирующего подхода «Compile-time generics» через монтоморфизацию.
Не Core:
- Rowan Tommins (imsop) — активный участник internals.
- Ben Ramsey — release manager 8.1, автор
ramsey/uuid, дед.
- Aleksander Machniak (alec) — Roundcube.
Топят за то, что дженерики должны быть нестираемыми и делать проверки в рантайме. Хотят отложить до PHP 9.
Не высказали позицию: Sara Golemon (pollita), Jakub Zelenka (bukka), Kalle Sommer Nielsen (kalle).
Не из Core, но позицию тоже не объяснили:
- Sebastian Bergmann (sebastian) — автор PHPUnit, дед.
- Volker Dusch (edorian) — свита Себастиана.
- Shivam Mathur (shivam) — setup-php (CI-инфраструктура PHP в GitHub Actions), на PHP не пишет.
- duncan3dc — Craig Duncan, мейнтейнер thephpleague/climate.
- jordikroon — Jordi Kroon, нидерландский backend/DevOps-разработчик. Право голоса — по коммитам в инфраструктуру php.net.
- kguest — Ken Guest, «PEAR guy»: мейнтейнер PEAR-пакетов (Services_OpenStreetMap, Net_IMAP), контрибьютор build-инструмента Phing.
Высказались ЗА:
- Ondřej Mirtes — создатель PHPStan.
- Matthew Brown — создатель Psalm.
- Daniil Gentili — мейнтейнер Psalm.
- Brent Roose — DevRel PhpStorm (JetBrains), Tempest.
- Nicolas Grekas — core Symfony.
- Frederik Bosch (MoneyPHP), Benjamin Außenhofer, Arvids Godjuks — работяги из сообщества.
Из них проголосовал только Nicolas Grekas.
—
Это подтверждает тезис, что
Люди, которые будут пользоваться этой функцией каждый день, не голосуют. Голосуют те, кто никогда не напишет Collection<User>Соглашусь с Брентом из его статьи A generic tragedy, что похрен на то, что дженерики сейчас не приняли. Меня беспокоит то, что у языка нет дизайнера, нет единого видения. Почему-то за важные фичи голосуют какие-то деды без всякой аргументации, писатели документации и девопсы. Да, к настоящим core-разрабам надо прислушиваться, как к технарям-экспертам, но дизайн языка это больше про DX. Чуваки из Core не пишут на PHP. Вот реально, на списках фичей следующей версии PHP можно ставки делать. Нет дорожной карты. Каждый год хер его знает, что там будет через год. Как бы Рома Пронский не упрекал меня в душности, я всё равно останусь при своём мнении: текущая система принятия RFC - говно. PHPF стоило бы заняться именно этим, а не инклюзивностью. Например, найти экспертов в дизайне ЯП (только нормальных экспертов!), составить несколько планов развития и предложить их сообществу, раз без голосования нельзя. — Нужен ли нам доброжелательный диктатор на дизайне языка или идти по пути голосований — сложный вопрос. Но я на 100% уверен, что неэкспертов надо убирать из голосований.
1 966
+8
Продолжение.
Добавил пару серверов: Pasir и Apache; а также лучшее из комментариев
1 966
Валентин анонсировал Пыхник.
Август-сентябрь, доклады в ламповой атмосфере.
Идея мне очень нравится. Если всё получится, планирую податься с докладом:
- может про Testo
- может про Rapira, которой не существует
- может приеду с шашлыками и пивом в стиле Folk
Приходите голосовать и обсуждать.
1 966
+5
Давайте представим, что наши приложения — мясорубки: на входе запрос мясо, на выходе ответ фарш. А серверы — приводы этих мясорубок.
1 966
Repost from OpenIDE – мультиязычная среда разработки
⚡️ OpenIDE теперь поддерживает PHP
Ваши молитвы были услышаны! Мы добавили поддержку самого востребованного языка в мире — PHP 😱
Автодополнение, навигация, отладка, поддержка Laravel, Symfony и других фреймворков, внешние анализаторы: всё это уже работает в OpenIDE.
Пока что поддержка находится в статусе бета, поэтому если что-то пойдёт не так, пишите в чат или заводите issue.Сейчас все возможности доступны бесплатно и без каких-либо ограничений. После публичного релиза OpenIDE Pro часть из них, вероятно, будет доступна только в Pro-версии. PHP for OpenIDE [beta] в маркетплейсе
1 966
+2
#ТоксикСреда
Раньше было лучше. Не то, что сейчас!Так считает и наш любимец Нуно: при релизе PHP 8.5 Pipe-операторы были Absolute fire 🔥, но в конце мая вдруг стало ясно, что синтаксис до PHP 8.5 с колбасой вложенных вызовов лучше, чем пайпы! И вот на ютубе появилось видео, что пайпы — говно. Вероятно, нет вайба. Что говорят эксперты:
Этот Нуно ваш — флюгер по моде.Что говорят PHP-эксперты:
Пайпы в целом везде всрато выглядят, так сложилось (с) Изя
Пайпы без картирования и ЧП нахрен не нужны (с) Кирилл-токсик
Языки которые ввели пайпы не требуют return... Почему же не заметили? value |> f |> g |> return (с) Edmond Dantes
хрень (с) V D
Пайп лучше, чем вложенность. Вкусовщина) (с) Сергей Предводителев
Ну и хуита этот ваш пайп оператор) (с) Maksim Masiukevich
пайпы, норм, чего не нравится (с) whiskey
ваще первый раз про них слышу ) (с) Anatoliy Poloz
А как стать экспертом?)) (с) Ivan StryginА что думаете вы спустя полгода после релиза PHP 8.5? Пайпы по вайбу?
1 966
Сегодня просто странный день. Подгорает то тут то там. Но почемуууу? :)А у меня есть ответ! 👇
1 966
Вышел TrueAsync 0.7.0, краеугольная версия, которая определяет необходимый API для асинхронного программирования. Отныне работа над API будет заморожена.
Релиз соединяет два мира: потоки и корутины в единое целое, позволяя комбинировать CPU BOUND/IO BOUND задачи.
Дополнительное расширение-сервер на С помогает использовать async серверные приложения.
https://true-async.github.io/en/download.html
Пост Edmond Dantes из 🐘 PHPeople.
1 966
2015: — PHP умер. В 2026: — Folk, Rapira, fibers, event loop, coroutine scheduler... — А PHP-то где? — Вот именно поэтому и умереть не получается.
Спорят два разработчика: — Folk быстрее. — Нет, Rapira правильнее. — А нагрузочные тесты есть? — Ты что, хочешь испортить дискуссию фактами?PHP-комьюнити:
— Нам нужен единый стандарт async. Также PHP-комьюнити: — Folk. — Rapira. — Amp. — React. — Swoole. — RoadRunner. Единый стандарт, говорили они...
Самое страшное в FrankenPHP не слово PHP. Самое страшное — когда начинаешь понимать, как он устроен.
Раньше новичку объясняли: PHP → nginx → php-fpm. Теперь: PHP → FrankenPHP. — И всё? — Нет, там дальше начинается лор.
1 966
Из PHP Beer #RandomBeer
В бар заходят Go-разработчик, Node.js-разработчик и PHP-разработчик. Go: — У меня горутины. Node: — У меня event loop. PHP: — У меня... Все: — Не надо!!!
— Что такое true async в PHP? — Это когда в комментариях к статье уже 300 сообщений, а рабочего кода ещё никто не показал.
Спорят два PHP-разработчика. — Это не async, это кооперативная многозадачность! — Нет, это async! — Нет! — Да! ...проект всё ещё работает через cron раз в минуту.
AI спрашивает: — Зачем вам async в PHP? PHP-разработчик: — Чтобы обслуживать 100 тысяч соединений. — А сколько у вас пользователей? — Трое.
Встретились два бэкендера. — У вас async? — Да. — Настоящий? — А у вас микросервисы? — Понял, извини.
Что такое настоящий async в PHP? Это когда после трёх часов объяснений выясняется, что bottleneck всё равно в MySQL.
PHP-разработчик: — Мы используем Swoole, Fibers, OpenSwoole, RoadRunner и высокопроизводительный runtime. — А что тормозит? — SELECT *.
Async PHP — это как открыть двадцать касс в супермаркете. А потом посадить на все кассы одного кассира.
1 966
#RandomBeer
Погнали пивко давить завтра вечером в онлайне.
Точное место и время определим в комментариях ближе к событию.
1 966
Repost from The Dragon Code News
llm/skills - очень удобный и лёгкий способ обновления скиллов в PHP проекте без привязки к фреймворку!
Устанавливаем в проект и настраиваем:
composer require --dev llm/skills
composer skills:init
А дальше накидываем нужные скиллы хоть из папки vendor, хоть из GitHub/GitLab репозитория!
composer skills:init [options] # alias: skills:i
composer skills:update [<package>...] [options] # alias: skills:u
composer skills:show [<package>...] [options] # alias: skills:s
composer skills:add <input> [options] # alias: skills:a
https://github.com/roxblnfk/skills1 966
Repost from Новости от CutCode
PHP-стрим: generics, RFC и AI
Собираем ламповый стрим с ребятами из PHP-сообщества.
Главная тема — RFC по generics в PHP: зачем они нужны, что могут решить, где усложнят язык и как повлияют на Laravel/Symfony, библиотеки и статический анализ.
Плюс обсудим, что сейчас происходит в разработке с AI!
Предварительно участвуют: Кирилл Несмеянов, Алексей Гагарин, Эдмон Дантес, Дмитрий Дерепко. Возможно подключатся Андрей Helldar и Сергей Пантелеев.
21 мая в 19:00 мск на YouTube
Приходите, если пишете на PHP и хотите обсудить, куда движется язык и профессия.
1 966
Добавил в Testo набор скиллов
Самый полезный — testo-migrate-from-phpunit
Со скиллами AI агенты обещают быть эффективнее, чем бабушкины промпты. Размещаются они в папке
.claude/skills || .agents/skills || .cursor/... (вариантов много, зависит от системы агентов).
Но нам же будет лень копировать эти ваши скиллы из вендора в проект!В точку! И поэтому в довесок я запилил новый пакет llm/skills ⭐️ Остальное читайте в блоге Testo.
1 966
Новая статья, фартаны.
#Article про Мутационное тестирование.
Кто, кстати, гоняет мутантов в проде?
1 966
🚀 Давно не было новостей про Buggregator — и вот они!
Встречайте Buggregator 2.0 — это не просто обновление, а полноценный перезапуск. Новый сайт, новый UI, всё новое.
1. Полный переход на Go
Теперь никакого PHP — только один бинарник (~20 МБ), который:
- запускается из коробки
- не требует Docker, RoadRunner и прочего
- работает на Windows, Linux и macOS
2. Простой запуск = низкий порог входа
Скачал → запустил → работаешь. Всё.
3. Встроенный прокси-сервер. Можно дебажить HTTP-запросы вообще без сторонних инструментов:
- указываете Buggregator как proxy в любом HTTP-клиенте
- смотрите входящие/исходящие запросы и ответы
- удобно для любого языка и стека
4. Улучшенный профайлер
- обновлённый UI
- кликабельные элементы дерева
- удобная навигация по запросу и его пути
- быстрее разбираться в том, что происходит внутри
5. Новый модуль для работы с SMS, с ним можно
- отправлять SMS через endpoint
- валидировать данные (номер, параметры и т.д.)
- проверять корректность перед отправкой провайдеру
Основано на провайдерах из Symfony — всё максимально приближено к реальному использованию
6. 🤖 MCP-сервер
Claude Code, Cursor и любые MCP-клиенты
доступ к логам, ошибкам, профайлингу и var dump’ам прямо из IDE
можно спрашивать: «покажи последние ошибки», «где узкое место?», «разбери стек»
💡 Что в итоге? Один инструмент для дебага всего без регистрации и СМС.
Документация для человеков и LLM
——
Обязательно ставим звезды, если нравится инструмент!
1 966
Времена меняются, апрель 2026, куча типов подхватили хайп FrankenPHP. Мою ленту медиум и линкедина можно ну просто обмазать этим говнищем, но я вот одного не понимаю: а какая конечная цель-то?
Такой типа амега лонг раннинг для бедных и понты HTTP/3 (который до сих пор никому не нужен и есть в бете роадраннера). Неясно, в общем, в чём профит.
И ни один симфонист автор не может сказать, почему Franken хорош, а вынести джобы Раннеру, который сам распределит их в отдельные воркеры, плюсом ещё и центрифугу с темпоралом подвезет - плох.
Не знаю, может я какой-то нетакуся, но рост раннера реально большой, я на собесах последнее время ОЧЕНЬ интересен тех интервьюеру из-за запроса на роадраннер.
Да, комьюнити конечно очень тихое. Сильно не видно ни больших постов, ни маркетинговых подвижек и тд.
Но я воюю на фронте раннера, я уже интегрировал его в 2 последних мои компаниях и в 4 контракторских проектах как тех лид ✊
Но конечно забавно, что люди не могут осознать, что FrankenPHP не супер ультра новьё, а фактически костыль как был, так и есть. Ну и в этом смысле я обосновываю юз RR как раз тем, что это не заменяет и не изменяет ничего в PHP, а именно что запускает PHP и может использоваться через привычный RPC для всяких приколов по типу пушнуть джобу, локи поставить, кв нормальный поюзать (а не поднимать контейнер с редисом в каждом проекте).
