PHP Fart Time
Внимание, конкурс!
Кто первый угадает, из какого фильма использовалась звуковая дорожка в этой истории 👆, тот получит проходку на подлодку!
—
Двое получили свои проходки.
Звуковая дорожка взята из фильма Deadpool 2 (вот этот момент)
Кто первый угадает, из какого фильма использовалась звуковая дорожка в этой истории 👆, тот получит проходку на подлодку!
—
Двое получили свои проходки.
Звуковая дорожка взята из фильма Deadpool 2 (вот этот момент)
Telegram
PHP Fart Time
Привет, фартаны! Дождались!
21 апреля стартует новый сезон Podlodka PHP Crew "High Performance".
Много тем про оптимизацию и тюнинг инфры. Есть что-то и про код.
Покупка билетов и детали на сайте.
Промокод PHP_FART в деле!
Как попасть бесплатно:
- Дождаться…
21 апреля стартует новый сезон Podlodka PHP Crew "High Performance".
Много тем про оптимизацию и тюнинг инфры. Есть что-то и про код.
Покупка билетов и детали на сайте.
Промокод PHP_FART в деле!
Как попасть бесплатно:
- Дождаться…
Новости дня
!> Вышел PhpStorm 2025.1
Значительные улучшения в AI Assistant (например, можно подключить локальную LM Studio, поддержка
Поддержка PHP 8.4 не заявлена.
!> Подвалило обновление на RFC True Async. RFC стал проще, добавлено больше примеров.
!> Напоминаю, завтра будет Пыхап №3. Остались ещё несколько билетов.
!> Подлодка №6 уже открылась. Попасть на борт можно через Глеба.
!> После статьи про dload, количество звёзд пакета увеличилось на 0. Ни на что не намекаю, просто спасибо за поддержку 🍺
!> Вышел PhpStorm 2025.1
Значительные улучшения в AI Assistant (например, можно подключить локальную LM Studio, поддержка
.aiignore
), обновлён новый терминал (стал более новым), мелкие свистоперделки и мешок багов. Всё, как мы любим.!> Подвалило обновление на RFC True Async. RFC стал проще, добавлено больше примеров.
!> Напоминаю, завтра будет Пыхап №3. Остались ещё несколько билетов.
!> Подлодка №6 уже открылась. Попасть на борт можно через Глеба.
!> После статьи про dload, количество звёзд пакета увеличилось на 0. Ни на что не намекаю, просто спасибо за поддержку 🍺
Вчера 6 фартанов травили разные истории на несанкционированном after-party подлодки (random beer).
Одна из историй была про то, как некийразработчик паровозик смог вытащить конфиги из WordPress в ENV переменные. Это сильно облегчило жизнь команды, даже несмотря на то, что из-за несовместимости с ядром WP официальные фиксы пришлось докидывать руками в свой форк.
На днях объявился ещё один паровозик, который смог запустить gRPC с Laravel Octane.
На самом деле не знаю, на сколько сложно это было и насколько концепт выглядит рабочим. Я не сомневаюсь, что, изрядно извернувшись, можно на Laravel делать десктопны приложения, запускать gRPC, Temporal, вертеть корутины в асинке..., но зачем?
А вы тоже — паровозик, который смог?
Одна из историй была про то, как некий
На днях объявился ещё один паровозик, который смог запустить gRPC с Laravel Octane.
На самом деле не знаю, на сколько сложно это было и насколько концепт выглядит рабочим. Я не сомневаюсь, что, изрядно извернувшись, можно на Laravel делать десктопны приложения, запускать gRPC, Temporal, вертеть корутины в асинке..., но зачем?
А вы тоже — паровозик, который смог?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
PHP Fart Time
Вчера 6 фартанов травили разные истории на несанкционированном after-party подлодки (random beer). Одна из историй была про то, как некий разработчик паровозик смог вытащить конфиги из WordPress в ENV переменные. Это сильно облегчило жизнь команды, даже несмотря…
Please open Telegram to view this post
VIEW IN TELEGRAM
Spatie зарегистрировали домен php-operators.com, чтобы просто разместить там все операторы PHP.
Не знаю зачем. Скорее всего чтобы материал из документации усваивался лучше, ведь у Spatie с пониманием операторов большие проблемы: даже в этой выжимке хлопцы записали логические операторы в операторы сравнения, а про тернарники вообще забыли (уже исправили по фидбеку с реддита). Может ещё почитают доку и про массивы что добавят. Или даже кто-то и про разницу арифметического и логического сдвига вправо вспомнит.
Пишу я это не только чтобы похейтить. Страничка приятная, но надо было сделать её в документации PHP и сразу нормально, а не "делегировать мумбайцам" с последующим размещением на отдельном одностраничнике (чтобы классов побольше набрать?).
Не знаю зачем. Скорее всего чтобы материал из документации усваивался лучше, ведь у Spatie с пониманием операторов большие проблемы: даже в этой выжимке хлопцы записали логические операторы в операторы сравнения, а про тернарники вообще забыли (уже исправили по фидбеку с реддита). Может ещё почитают доку и про массивы что добавят. Или даже кто-то и про разницу арифметического и логического сдвига вправо вспомнит.
Пишу я это не только чтобы похейтить. Страничка приятная, но надо было сделать её в документации PHP и сразу нормально, а не "делегировать мумбайцам" с последующим размещением на отдельном одностраничнике (чтобы классов побольше набрать?).
Php-Operators
PHP Operators
This media is not supported in your browser
VIEW IN TELEGRAM
большой-маленький воркфлоу на затравку
У нас было уже несколько встреч #RandomBeer. Это как Beer PHP, только онлайн.
Последняя такая встреча была неделю назад.
На ней мы смотрели, как Павел пытается запустить Wippy gen. 2, сравнивали, как работают разные LLM, просто болтали и под конец забабахали рандомный доклад про PSR фреймворки и области видимости контейнера. Вживую разобрали кейс розлива пива в хлебном контексте на примере Symfony, Spiral и Laravel 🤯
Думаю, всем понравилось.
С сегодняшнего дня у многих аж 4 выходных подряд, а что это значит?
Правильно! Надо снова идти в онлайн!
Прыгайте в чат и голосуйте, кто в теме.
Последняя такая встреча была неделю назад.
На ней мы смотрели, как Павел пытается запустить 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, Франкен и воркараунды для файберов... да ещё и продавил это всё в массы.
Мой кумир!😐
Пых: 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
В PHP 8.5 втащат пайпы из функционального программирования.
Вот такой синтаксис:
В первой итерации в трубу просто передаются коллаблы (callable), в которые первым аргументом передаётся результат предыдущей операции.
Я пока для себя не решил, насколько удобен или всрат синтаксис. С одной стороны можно было бы
Также я ожидал увидеть PFA, чтобы писать поменьше кложур, но мб добавят в следующий раз.
Кстати, на первом пыхапе был отличный доклад по ФП.
Вот такой синтаксис:
$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');
Кстати, на первом пыхапе был отличный доклад по ФП.