PHP Fart Time
1.72K subscribers
75 photos
3 videos
2 files
162 links
Привет, фартаны!

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

Авторы контента: @roxblnfk и @butschster
Download Telegram
Вчера 6 фартанов травили разные истории на несанкционированном after-party подлодки (random beer).

Одна из историй была про то, как некий разработчик паровозик смог вытащить конфиги из WordPress в ENV переменные. Это сильно облегчило жизнь команды, даже несмотря на то, что из-за несовместимости с ядром WP официальные фиксы пришлось докидывать руками в свой форк.

На днях объявился ещё один паровозик, который смог запустить gRPC с Laravel Octane.
На самом деле не знаю, на сколько сложно это было и насколько концепт выглядит рабочим. Я не сомневаюсь, что, изрядно извернувшись, можно на Laravel делать десктопны приложения, запускать gRPC, Temporal, вертеть корутины в асинке..., но зачем?

А вы тоже — паровозик, который смог?
Forwarded from Igor Markin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Igor Markin
Spatie зарегистрировали домен php-operators.com, чтобы просто разместить там все операторы PHP.

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

Пишу я это не только чтобы похейтить. Страничка приятная, но надо было сделать её в документации PHP и сразу нормально, а не "делегировать мумбайцам" с последующим размещением на отдельном одностраничнике (чтобы классов побольше набрать?).
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
большой-маленький воркфлоу на затравку
Live stream started
Live stream finished (5 hours)
У нас было уже несколько встреч #RandomBeer. Это как Beer PHP, только онлайн.

Последняя такая встреча была неделю назад.
На ней мы смотрели, как Павел пытается запустить Wippy gen. 2, сравнивали, как работают разные LLM, просто болтали и под конец забабахали рандомный доклад про PSR фреймворки и области видимости контейнера. Вживую разобрали кейс розлива пива в хлебном контексте на примере Symfony, Spiral и Laravel 🤯
Думаю, всем понравилось.

С сегодняшнего дня у многих аж 4 выходных подряд, а что это значит?
Правильно! Надо снова идти в онлайн!

Прыгайте в чат и голосуйте, кто в теме.
Так, фартаны. Токсик-среда. И новости подходящие :)

Пых: FrankenPHP переходит под крыло PHP!
Новость в блоге Саши Макарова

Не то, что это неожиданность, но давайте обсудим похейтим.

Какую проблему в PHP решали?

Пыхе нужен свой сервер со всеми современными свистоперделками (TLS, WebSockets, Early Hints, HTTP 1, 2, 3, 4g, 5g...). По понятным причинам FPM, как и встроенный dev-сервер, тут не подходят. Первый тупо менеджит воркеры и требует HTTP сервер типа nginx/angie, а второй не имеет свистоперделок.

Взяли франкен из-за Caddy. Получили свой сервер? Вообще, нет.
По мне, получили этакий костыль, который теперь будет отжирать внимание разработчиков ядра и, возможно, средства из фонда. Я бы не назвал это своим сервером. Просто нестабильный бридж на Caddy.
Знаю, что @samdark постоянно говорит, что у него франкен работает уже год, но не в воркер-режиме (т.е. как FPM), но стабильно. Если чутка подкопаться, то выяснится, что были кейсы с сегфолтами или отвалилось 50% статики. В общем тут вопрос терминологии:
- потерял запросы на сегфолте — нормально!
- "кадди отлетает наглухо при любом фризе скрипта" — нормально!
- отвалилась статика — тоже нормально!
Самый смак в том, что ты не можешь на это повлиять. Ведь причина не в высокой нагрузке, не в настройке окружения, не в ошибке в коде приложения. Тупо нестабильный сервер.

Какие были альтернативы?

Решил бы RoadRunner проблему? Нет. Он как бы в стороне, никому не мешает, и нет технической необходимости тащить его под крыло PHP, т.к. он не прибит к пыхе гвоздями.
Забавно, что RoadRunner — language-агностик решение, но решает проблемы именно пыхи.
Да и репозиториев много, переносить долго. В случае RR лучшим решением было бы сотрудничество или спонсирование, т.к. RR существует только в интересах PHP.

Если бы Swoole стал официальной частью пыхи, было бы интереснее. Родной сишный стек. Интероп нулевой. И RFC на TrueAsync был бы максимально в тему, т.к. половина костылей внутри свули отвалилась бы.
Походу, не договорились. Переход под крыло PHP означал бы и смещение контроля в сторону PHP. А там разброд: за RFC голосуют не только спецы, а вообще кто попало. Некоторые из них даже на PHP не пишут. Я бы на месте китайцев тоже отказался 🤔

Летом-осенью должно выйти решение от Angie (здесь могла быть Rapira) — такая же тесная интеграция в пыху, как франкен, но с более тонким и стабильным интеропом (не cgo). Но это часть продукта angie и под крыло PHP оно точно не ушло бы, ведь на нём скорее всего будет какая-то монетизация.
Выбирая себе сервер, между франкеном и Angie я бы выбрал Angie.

Выводы

Вот и получилось, что взяли на безрыбье. Зачем, если проблему не решили?
Набрать классов, набрать бета-тестеров, набрать спонсоров или из жалости.
Было бы неплохо, если бы Дунглас тащил франкен не в одно рыло, но я сомневаюсь, что это изменится.

Как итог: Дунглас становится лучшим инжектором костылей 21 века!
О да: Mercure, Франкен и воркараунды для файберов... да ещё и продавил это всё в массы.
Мой кумир! 😐
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Igor Markin
В PHP 8.5 втащат пайпы из функционального программирования.

Вот такой синтаксис:
$numberOfAdmins = getUsers()
|> fn ($list) => array_filter($list, isAdmin(...))
|> count(...);


В первой итерации в трубу просто передаются коллаблы (callable), в которые первым аргументом передаётся результат предыдущей операции.

Я пока для себя не решил, насколько удобен или всрат синтаксис. С одной стороны можно было бы fn() для пайпов опустить, сделать просто скобочки. С другой, с fn() не страдает консистентность.

Также я ожидал увидеть PFA, чтобы писать поменьше кложур, но мб добавят в следующий раз.
// Без PFA:
$foo
|> bar(...)
|> fn($x) => array_filter($x, fn($v) => $v != 'O');

// С PFA:
$foo
|> bar(...)
|> array_filter(?, fn($v) => $v != 'O');


Кстати, на первом пыхапе был отличный доклад по ФП.
PHP Fart Time
У нас было уже несколько встреч #RandomBeer. Это как Beer PHP, только онлайн. Последняя такая встреча была неделю назад. На ней мы смотрели, как Павел пытается запустить Wippy gen. 2, сравнивали, как работают разные LLM, просто болтали и под конец забабахали…
Продолжаем тему подпивасных онлайн встреч #RandomBeer

С прошлого раза отчётливо помню:

🍺 Был срач за фреймворки и архитектуры
- Кирилл опять топил за симфу, признавая, что там всё говно, кроме макро-архитектуры (что бы это ни значило).
- Кто-то кого-то назвал Laravel-мартышкой, но никто этим не оскорбился.
- Кто-то топил за Spiral и, что странно, это был не я и не Паша.

🍺 Потыкали Boson Кирилла
- Погоняли демку.
- Примерили на Trap, но возникли некоторые сложности с переходами по страницам.
- Кирилл пошёл делать свой VarDumper на бозоне.

Остальное не помню или не отчётливо 🤔

Присоединяйтесь сегодня вечером.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Слышите? Дудят фартфары!

Это коллектив фартанов
с глубочайшими пожеланиями поздравляет
Валентина Удальцова, автора канала Пых
и RFC new MyClass()->method() without parentheses,
с днём рождения!