PHP Fart Time
1.85K subscribers
106 photos
5 videos
2 files
198 links
Привет, фартаны!

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

Авторы контента: @roxblnfk и @butschster
Download Telegram
🖼️ Доку мы не читаем, но блин. Доки не хватает! Где дока, @samdark? Почему она там, а не здесь?

Саша понял, про что я: в закрытом чате мы уже обсудили, что было бы неплохо иметь больше описания и ссылок в коде. Паша, конечно, молодец, что быстро разобрался с параметрами роута, однако мы уже живём в мире, где надо делать супер быстро, где LLM смотрит на примеры кода, которые под носом (это не только вайбкоддинга касается, но и автокомплита тоже), где смузи-разработчики не будут углубляться (для этих надо ещё и эмоджи 📖 добавлять).

Вывод мой такой:

Сейчас Yii — конструктор с маленькими деталями. Чтобы сделать что-то большое, придётся много сражаться в рукопашную. И я уже "стар для этого дерьма".
Также я не люблю фреймворки, которые мешают или ограничивают. Yii3 не ограничивает, однако если мне для того, чтобы получить $request, надо сначала получить RequestProvider, а чтобы отправить строчку, нужно создать Response и стрим для него, то произойдёт что-то одно:
- либо я пойду велосипедить и делать базовый контроллер, который будет сахарным, но в дальнейшем код моих контроллеров будет без лапши.
- либо с возгласом "доколе можно!" возьму другой фреймворк.

У Yii 3 есть чаты для сообщества (открытые и закрытые по подписке), но почему бы не обсудить что-то прямо здесь?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13😁1
Сегодня наткнулся на очередной пост в LinkedIn о том, что в Laravel добавили кнопку "Скопировать Markdown" специально для AI, и кто-то пошел дальше и запилил пакет с кнопками Ask ChatGPT / Ask Claude прямо на странице ошибки.

И я призадумался 🤔 ибо #токсикСреда.

Если разработчику нужно обязательно спросить у AI, чтобы понять, что за ошибка в его же коде — это выглядит пугающе.

Мы же таким образом выращиваем не программистов, а AI-операторов, которые без LLM даже стек-трейс не смогут прочитать и понять, что же они там наговнокодили/вайбкодили.

Ну а ты собираешься спрашивать у AI про ошибки в твоем же говнокоде? Не боишься получить дозу кибер-унижения? Поделитесь кейсами которые было сложно дебажить и где бы помог AI 👇
😁32126
Подгребайте потихоньку на #RandomBeer

(гуглмит блочится роскомпозором, пробуем пачку)
https://meet.pachca.com/

В течение часа ожидаются тухлые смоллтолки, пока все расчехляют пивко. В 19 МСК ожидается начало прожарки.
Встал сутра, а эти двое на меня так смотрят, будто я им денег должен...

Доброго утра, фартаны!
🔥391110
Forwarded from PHP умирает?! (Валентин Удальцов)
Спасибо @tranxton.
🔥41😁4141
Начался Hacktoberfest 2025

Если выполнить задачи в числе первых 10_000 участников, то можно выиграть футболку. Но в РФ её всё-равно не доставят.

Однако, пофиг на футболку. Давайте просто делать #OpenSource вместе, хотя бы в этот месяц.

Пара советов:

Советую любой вклад в репозиторий начинать с обсуждения:
- Написать в Issue, что собираетесь взять задачу на себя и уточнить, есть ли вещи, на которые стоит обратить внимание.
- Найти ответственного и пнуть в чате.
- Обсудить объём работ, чтобы не делать всё или не попасть в ситуацию, когда часть работы уже сделана где-то ещё.

По Pull Request советую:
- Не делать то, что выходит за рамки Issue, не изменять левые файлы.
- Не делать Force Push, особенно после ревью.
- Не делать большие PR. Это в продуктовых проектах большие изменения проходят с меньшими замечаниями. В опенсорсе большой PR == больше работы для ревьювера.

Вот пара направлений сходу:

1. @terabytesoftw из Yiisoft докладывает: сейчас Yii2 покрыт тестами на 75%. Давайте добьём до 100%.
PR is welcome

2. Подгон от @butschster: ишуи с тегом Good First Issue в репозитории CTX и for-contributors в Buggregator.
3. Ну а я буду просто очень счастлив, если кто-то доделает этот PR (можно прыгнуть на ветку автора, запушить её в свой форк, доделать и затем сделать новый PR)

В PHP сообществе есть ещё пара интересных мест:

- Общий канал по пыховому опенсорсу, в который можно прийти и как мейнтейнер (хранитель кодовой базы), и как контрибьютор (участник, вкладчик).
- Тема опенсорса в нашем чатике, где можно полулзить или обсудить что-то посложнее, чем Good first issue.

———

Кстати, открытое ПО тесно связано со свободными лицензиями.
И тут возникли мысли, а не пора ли нам с Павлом везде внедрять эту лицензию?

PS: Спасибо Владу Шашкову, который следовал этой лицензии и угощал меня пивом на ПыхКонф'2025 🍻
17🔥6
#токсикСреда в пятницу! Почему бы и нет?

Зацените пост от JetBrains: Moving PHP open source forward
JB говорит, что в следующем году будет финансово поддерживать пятерых опенсорсеров. Одобряю такое движение в любом случае.

Уже определены 4 опенсорсера:
- Saif Eddin Gmati, разрабатывающий Mago. Ранее помогал с парсером PHP ныне почившего PXP.
- Markus Staab, который контрибутит в PHPStan и AMPHP
- Kyrian Obikwelu — наш любимый нигериец, который смог.
- Sjon Hortensius, создатель 3v4l.org. Этому товарищу я тоже донатил когда-то.

Ситуация с Кирианом выглядит забавно. Чувак навайбкодил свой MCP, который, в прочем, на фоне остальных выглядит очень даже неплохо. А затем его наработки смержили с Symfony AI и получилось говно официальный MCP сервер.
Почему забавно?
Да чувак просто стал героем у себя в стране! Загремел в PHP Official MCP dev team, да ещё и бабки за это поучает сравнительно неплохие (поресёрчил, средняя ЗП айтишников в Нигерии 100-300$/мес).
Причём на деле разработка официального MCP встала, а JB пишут, что платят за "активное изучение возможности искусственного интеллекта и машинного обучения на PHP" 😆.

Но пост не об этом.

Вы, верно, заметили что пятый разработчик не определён. И JB в посте сказали "накидывайте варианты, кого поддержать".

И вот тут меня подбомбило 😠
Simon Hamp, который уже более двух лет лезет во все щели со своим NativePHP, затвитил "а давайте срубим куш и, может быть, NativePHP когда ни будь станет бесплатным". После этого сотни хомяков побежали срать фразой nativephp в твиттере, в блоге JB и везде.
NativePHP — технологический мусор, а с позиции маркетинга уже наравне спаму. У них есть свой закрытый платный продукт, и это точно не тот опенсорс, которым мы пользуемся и который остро нуждается в поддержке.

Я предлагаю законтрить хомяков и заявить везде про BosonPHP. Люди должны знать, что есть более технологически правильные альтернативы.

Да, JB всё-равно не выберет Кирилла, поэтому надо поддержать что-то ещё:
CSFixer, Psalm, RoadRunner, Infection, Xdebug, Buggregator. То, что действительно полезно и не приносит прибыли разработчикам.

Давайте не поленимся, зайдём в блог JB (кто может и в твиттер) и накидаем им за Boson, Psalm и RR в комментарии
Ток без хейта плз )
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥346
#токсикСреда продолжается.

Вокруг какой-то скам. Попробовал я законтрибьютить в этот ваш официальный MCP SDK. Это был худший опыт.

1. Нет понимания, кто за что отвечает.
2. Лейблы в ишуях как будто стоят денег, их стараются игнорировать и экономить, чтобы лейблы не кончились.
3. Milestone? не, не слышали. Вот как выглядит у меня, например.
4. Проекты в Github? Тоже не слышали. Хотя всегда же круто иметь проект для управления разработкой, как здесь.
5. Я сделал PR и пожалел. Думал буду контрибьютить, но они таак долго все делали, иногда тупо игнор на несколько дней и понять, что происходит прям проблема. У меня также бывает конечно, но я один и не всегда есть время, а их больше 3-х! Желание пропало продолжать, т.к. пока получишь фидбек, уже забудешь что хотел и потом опять искать время.
6. Некоторые PR висят уже месяц!!!! А с такой помпой анонсировали нам этот MCP, мол приходите, контрибьютте, что такая команда собралась. По факту они заняты чем угодно, только не этим пакетом.
7. Они в SDK добавили фичей который к SDK не имеют отношение, типа Discovery. Это хуйня которая сканирует проект на атрибуты и их регистрирует. Это может и полезная фича, но SDK не должен мне диктовать как мне искать тулзы и т.д. Я хочу свой функционал для этого, зачем мне их зависимости? Моя ишуя, где я говорю, что хуйню делают. Но у них свой путь.

С учетом их подхода к управлению проектом и разработкой (ни лейблов, ни проекта, ни milestone) выглядит так, что собралась команда мечты, которая до этого не занималась командной разработкой.

Christopher Hertel, чувак из Symfony, вообще жжот. Я начал код писать, а мне IDE strict_types по умолчанию во все файлы добавляет.

// Здесь должен быть испанец со своим смехом

А оно у них удаляется потому что в cs fixer стоит

'declare_strict_types' => false,


Я создаю issue, мол давайте втащим.

// Здесь должен быть испанец со своим смехом

А там говорят, что в Symfony нет и это блядь прчина почему и здесь нет и продвигают в cs fixer эту хуйню.

Strict types just make the language worse, because it encourages the risky practice of casting, without providing any real or significant benefits.
© Nicolas Grekas


По итогу мы имеем команду мечты:
1. Чувак из симфони, который до сих пор не использует strict_types=1 и говорит "нахуй не нужон". А его коллега в тоже время обсуждает добавление в CS Fixer правила удаления strict_types. К'мон гайз, PHP 8.5 на пороге!
2. Нигериец, который вайб-кодер по жизни, чей код я изучил и не считаю его продукт хорошим и могу разложить по полочкам. Знаю только что он знает паттерн ларавел и в этом стиле пишет код. На свой пакет он успешно забил...
3. И еще хз кто там в команде, но они заняты чем угодно, но не этим пакетом.

Продукт получил кучу звезд, но как по мне, он не работает и будет как что-то, что проектировали те, кто в этом не особо то и разбираются. Но на волне хайпа собрали аж тыщу звезд, ну а толку? Это не SDK...

Каждый раз когда я с ними общался, те ответы, которые я получал кроме как "испанский смех" в голове не вызывали.

Смеющийся испанец - это прямая ассоциация всего происходящего вокруг этого репозитория и командой которая им занимается. Они просто к этому не готовы и делают как умеют, а не как надобно.

P.S. Ну и кто, блядь, додумался в SDK засунуть генерацию JSON схемы на аргументы функции???

use Mcp\Capability\Attribute\McpTool;

class CalculatorElements
{
#[McpTool(name: 'add_numbers')]
public function add(int $a, int $b): int
{
return $a + $b;
}
}
3😁327🔥3🤯3💊2