PHP Fart Time
1.75K subscribers
84 photos
4 videos
2 files
176 links
Привет, фартаны!

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

Авторы контента: @roxblnfk и @butschster
Download Telegram
Ну что, Spiral 3.14 в релизе 😋
А что там с Yii 3? 😄

Пока вы обновляете Spiral на ваших продакшенах, предлагаю в комментах закидать @samdark вопросами.

Мы точно в этом году увидим Yii3? 😮

* все совпадения с
этим мемом случайны
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14😁95
Кстати, для любителей #Laravel. Вчера задался вопросом, а можно ли с помощью #LLM агентов управлять консольными командами и накидал скриптик, который умеет это делать. https://www.youtube.com/watch?v=Tlu6PyL3Ur4
Мало того, что он может посмотреть какие команды есть в проекте и может их вызывать по мере необходимости, так еще он мне говорит: "Господь , создавший меня. Молю тебя научи меня файлы читать и код в низ править". И, я услышал его молитвы и научил. И стал он мне код в созданных файлов править и дописывать. Короче слово за слово, чуть ядро линукса мне не пропатчил. Успел его остановить, чтобы он не запустил создание себе подобны агентов и не захватил мой компьютер. Кто бы мог подумать, что #PHP мог стать захватчиком мира 😁

Кстати код агента я написал за 15 минут, а вот инструкции пришлось прорабатывать, часто шел в обход них. Короче то, что на видео - час работы.

Получилась в итоге забавная штука. Иногда тупить, но если инструкции проработать можно получить норм инструмент.

P.s. Отпишитесь в комментах, что думаете и может пора еще один стримчик, где сделаем такого агента и еще немного погрузимся в понимание как это работает?
5🔥2211💊4🤯2
Всем привет!

🕘 В 20:30 по МСК приглашаем вас на крутой стрим для всех, кто хочет наконец-то понять что такое LLM-агенты и посмотреть на наш крутой фреймворк по их созданию на PHP! Как всегда, советую приходить на стрим!

Сегодня будет создавать агента управления консольными командами для #laravel. В процессе посмотрим как все это можно кастомизировать под свои задачи.

До встречи на стриме! Чтоб не меньше 1_000 человеков пришло! И лайков столько же 🤖 Так что шарьте ссылки, ставьте лайки. Не утаивайте от своих коллег инфу.

https://youtube.com/live/to3sH2XzZB4?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
81810🔥6💊3
Когда работаешь за звёздочки в гитхабе и телеграмме.

Зато наши жопы принадлежат нам, а не инвесторам ;)
59025
#Article #Типизация

Я уже ранее публиковал заметку про любопытное отличие Promoted Properties от обычных свойств в кишках #PHP.

Promoted Properties от того и Promoted, что очень неплохо продвигались в плане маркетинга.


Например, вот такая портянка:
class CustomerDTO
{
public string $name;

public string $email;

public DateTimeImmutable $birth_date;

public function __construct(
string $name,
string $email,
DateTimeImmutable $birth_date
) {
$this->name = $name;
$this->email = $email;
$this->birth_date = $birth_date;
}
}


превращается в такую:

class CustomerDTO
{
public function __construct(
public string $name,
public string $email,
public DateTimeImmutable $birth_date,
) {}
}


Вау! Круто!
Но не раскрыта тема комментариев.
Если вы не пишете комментарии в коде, то вам, в прочем, без разницы 😑 но мне вот приходится 😫

Как правило, если требуется указать более точный "псалмовый" тип, то он перемещается из аннотации @var в аннотацию @param над конструктором, поэтому иногда получается такое говно, в котором нужный тебе параметр пойти найди.
А т.к. я обычно пишу непонятные тулзы, которые хер пойми как работают, то в комментариях часто нужен не только текст, но и вставки кода, дополнительные аннотации типа @internal, @note, @since, @see, @link.

И хорошего решения тут нет.

👉 Писать портянку под @property — тем всратее, чем больше комментариев и параметров.

👉 Писать типы и комментарии непосредственно над параметром — всрато.

class CustomerDTO
{
public function __construct(
/**
* @var non-empty-string Comment here
* Example here
*/
public readonly string $name,
//...
) {}
}


👉 Не использовать Promoted Properties и дублировать комментарий — всрато, но есть исключения (если свойство публичное, а конструктор internal, то в конструкторе можно обойтись только типом).
И даже если сделаешь красиво, то всё-равно потом придёт какой-нибудь умник с ректором или CS фиксером и запромоутит разом все параметры 🚽
Please open Telegram to view this post
VIEW IN TELEGRAM
#Article

Кстати, а вставки кода в комментариях — тоже кучерявая тема в #PHP.

👉 Есть Java-like вариант: оборачивать тегами <code>. Скуфы, мб, помнят.
Но мы, вроде, уже ушли от HTML среди PHP 😏
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* <code>
* $x = foo()->bar();
* </code>
*/
public readonly string $name;
}


👉 Есть Python-like вариант: делать отступы
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* $x = foo()->bar();
*/
public readonly string $name;
}

Тут не очень очевидно, сколько пробелов от звёздочки должно быть: по логике 1+4, но не сходится с разметкой Tab-ов.
Это активно используется в Symfony и PhpStorm это даже рендерит. Кстати, кто знает, как отключить этот рендеринг для классов из vendor?

👉 Есть Markdown-like вариант:
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* ```php
* $x = foo()->bar();
* ```
*/
public readonly string $name;
}

Мне нравится markdown, но это не рендерится PhpStorm'ом. Однако, рендерится документором.
Python-like на документоре не проверял, может тоже рендерит.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔8🔥2
Ранее я уже упоминал фреймворк Tempest
Brent, его автор, написал статью о том, как он докатился до такой жизни.

Примечательно то, что он по-прежнему не уверен, нужен ли его фреймворк этому миру. Сейчас у фреймворка под сотню адептов.
На следующей неделе он собирается выпустить альфа-версию, чтобы собрать обратную связь и понять, быть Tempest'у или не быть.

Если вы тоже делаете свой велосипед, приходите и расскажите здесь в комментариях, мы такое любим 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🤔2🔥1
Вот и закоммитился FartTime на подлодку PHP Crew.

Однако, в подлодке, как и в танке, самое важное — не бздеть.
Поэтому будем серьёзно так рассказывать и показывать Temporal.

Напоминаю, что по промику PHP_FART всё еще можно урвать билет со скидкой.
6258🔥3
Привет, фартаны 👋
Такая ситуация:
- у нас есть несколько проходок на подлодку
- но материал, с которым мы будем выступать, ещё не готов

Поможем друг другу! Иначе говоря, вот конкурс:

Подразумевая классический стек без темпорала (очередь, крон, БД, микросервисы на пыхе), накидайте флоу заказа такси. Пример на картинке 👆 Т.е. в виде схемы с каким-то описанием последовательности.
Не нужно сильно упарываться, т.е. писать код и слишком углубляться в детали.
Можно ошибаться (за это никаких санкций). Нужно просто показать самодостаточное архитектурное решение, которое не будет вызывать много вопросов.
Победителей может быть от 0 до 6. Если все проходки не раздадим, то оставшиеся разыграем (если звёздочек хватит).
Срок — неделя.

ТЗ примерно такое (крайние случаи можно додумывать):
На вход мы получаем DTO с клиентом, маршрутом поездки, ценой и фильтром (тариф, предпочтения... не важно).На

Этап 1: резервируем бабки на карте клиента. Если денег нет, то отменяем заказ.

Этап 2: подбор и прибытие водителя. Если за 5 минут водитель не нашёлся, то заказ отменяем.
Все свободные и подходящие по фильтру водители поблизости получают предложение выполнить заказ. Они могу заказ принять или не принять. Первый, кто принял, становится водителем.
Заказ может быть отменён клиентом, тогда размораживаем деньги. Или водитель может соскочить, ссылаясь на невозможность выполнить заказ, тогда водитель ищется заново в новые 5 минут.

Этап 3: поездка. Просто ждём, когда завершится. Если за час не было поступления информации о поездке (статус не изменился, от водителя не приходили GPS координаты), то уведомляем оператора -- пусть разбирается, что случилось.
Если поездка завершилась, то списываем бабки.


Свои варианты можете оставлять в комментариях. А если вы работаете в Яндекс.Такси или там Максиме и не хотите палиться, то можете сливать внутренние флоу в ЛС 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
3🤯6🔥2
Доброго времени 🔥

У нас осталось сколько-то проходок на подлодку (3 или больше). Давайте раздадим нуждающимся.

Хотел разыграть с помощью звёздочек канала, но вовремя узнал, что эта идея не очень: ради 100 звёздочек на халяву сбегутся ботоводы, понизив шансы для нормальных людей. Ладно звёзды, пёс с ними, но проходки должны достаться фартанам!


Поэтому розыгрыш будем проводить дедовскими методами.

👉 Напишите в комментах свой github account те из фартанов, кто хочет в архитектуру и:
- Готов всю следующую неделю в будние дни сутра и вечером слушать доклады и задавать по ним вопросы;
- Будет активно участвовать в конкурсах подлодки (Random Coffee, задания от спонсоров);
- Придёт с пивком на online afterparty;
- Поставил ⭐️ звёздочку нашим любимым репозиториям:
Temporal,
🪲 Buggregator,
💾 Trap,
⬇️ Dload,
🤖 LLM Agents
- Хотел бы, но не имеет возможности купить билет (промокод PHP_FART всё ещё работает) и поддержать проект Podlodka.

Ближе к концу недели наскребём проходки, запустим скрипт и выявим счастливчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥72
Уже завтра утром начинается Podlodka PHP.
Наши проходки мы разыграли, коды ушли счастливчикам.
Поздравляю победителей 🥳
Оказалось, что @wispoz выигрывает проходку на подлодку уже второй раз подряд 🤔

Тем, кто откладывал покупку на самый конец: пора! Ведь наш промокод PHP_FART, походу, забыли деактивировать 😏

Ну а мне и Павлу уже почти пора начинать задумываться о том, что уже скоро надо шевелиться в сторону подготовки доклада/лайвкодинга... хотя, вроде ещё рано.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥98😁4
Закончился первый доклад по архитектуре на подлодке. Тема: С4
😁454
С началом октября стартанул Hacktoberfest

Это такое мероприятие от DigitalOcean, направленное на развитие OpenSource.

Квест заключается в том, чтобы в течение октября продавить 4 своих PullRequest'а в репозитории с топиком hacktoberfest. Такой топик есть на многих OpenSource репозиториях, а если нет, то можно создать Issue.

Награда: футболка с логотипом и наклейки, либо дерево с твоим именем где-то в Южной Америке (если ничего не путаю).
Футболку из-за санкций получить теперь сложно, но именное дерево — почему бы и нет? 🏝

Жмём START HACKING и погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Вопрос с подлодки:

А в вашей компании есть архитектурный комитет?
1😁27🔥1🤮11
Заглянули на подлодке под капот API банков.
Что-ж у них так всё всрато то?😮‍💨
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥19😁5
Такого еще не видел!
31🔥23🤯1814
К хэллоуину Tempral заморочились страшилками из жизни до Temporal.

Поделиться или почитать чужие spooky stories можно здесь.
Также будут сессии голосом (на них надо записываться).

Ну а сейчас я буду рассказывать свой доклад на подлодке, который сам по себе не менее страшный, чем эти истории.
Представлю результат дизайна системы в классическом стеке (полученного из этого конкурса), а затем Павел перепишет всё на Temporal.

Надеюсь не облажаемся 😅
🔥113
Как вы думаете? Почему этот код рабочий?

<?php

https://temporal.io
echo 'Hello, World!';


Вот ссылка, можете проверить
https://3v4l.org/WZBGM
17🤔8
Ну, это-то тоже известная штука, Валентин.

А можешь ли ты уместить решение FizzBuzz в 56 байтов? (ранее рекорд был 52 символа, но недавно обновили версию пыхи, и кое какие хаки перестали работать)

https://code.golf/fizz-buzz#php

У кого короче, тот и выиграл
© wispoz
😁3
Купи слона!

У каждого PHP-программиста от говнокодера до профессионала должен быть PHP слон.

Купи слона!


Редкая возможность купить слона в России, да ещё и за 2к! Считай даром.

Купи слона!

Подходи, поторопись, PHP слоном закупись!

Пойду займу очередь за слоном. Такого у меня еще нет.
4😁15🔥66