Пых
8.32K subscribers
185 photos
11 videos
4 files
484 links
Блог @vudaltsov о разработке на PHP.

Хобот: @phpyhobot
YouTube: https://youtube.com/@phpyh
VK Видео: https://vkvideo.ru/@phpyh
Мемы: https://t.me/isPHPdying
Статистика: https://t.me/INOTAROBOT?start=st1219340804

Реклама и вакансии НЕ размещаются.
Download Telegram
Пых
Так-с, есть ошибка. Чиню! 🤔
Работает! Два момента исправил:

• телеграмовский userId в Postgres надо хранить в bigint (забавно, что у всех вчерашних бета-тестеров id были меньше),

• не учитывалась блокировка бота пользователями (тут пока хотфикс, позже сделаю по-нормальному).

@phpyhobot
Как проводить и проходить собеседования в 2025

Дмитрий Алин, автор канала @live_php_news и организатор питерских митапов, поделился своим опытом поиска работы:

https://telegra.ph/Kak-provodit-i-prohodit-sobesedovaniya-05-25

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

Расскажите в комментариях, с чем вы столкнулись при поиске работы и что вам помогло.
Forwarded from Пых.конф’25
Принимаем заявки на доклады!

19 сентября в Москве в Конгресс-центре ЦМТ пройдёт новая PHP-конференция для всех.

👥 400 участников • 🔢 4 зала • 🎙 28 докладов

Скоро откроется сайт конференции, где можно будет приобрести билет по стартовой цене.

А пока — подай доклад! Спикер участвует бесплатно, готовится вместе с программным комитетом и получает ценный опыт публичных выступлений.

Ориентировочный список тем:
• async и неблокирующий I/O;
• статический анализ: Psalm, PHPStan, Rector;
• производительность и highload;
• архитектура: ES, DDD, CQRS, микросервисы;
• тестирование и бенчмаркинг;
• инфраструктура: очереди, стримы, базы данных;
• DevOps: CI/CD, Docker, Kubernetes;
• AI/ML;
• фреймворки: Yii, Symfony, Laravel;
• CMS: WordPress, Drupal, Bitrix;
• IDE и плагины;
• open source: опыт, ошибки, лучшие практики.

Заявку, а лучше несколько, можно подать через Хобота до 1 июля. Мы свяжемся с тобой в течение недели и дадим обратную связь.

До встречи на Пых.конф’25!
Please open Telegram to view this post
VIEW IN TELEGRAM
RFC Pipe operator принят, заглянем в будущее!

https://wiki.php.net/rfc/pipe-operator-v3

Команда Typhoon, в особенности Андрей Клименко, очень внимательно следила за этим RFC. Недавно о нём писали фартаны, теперь RFC принят, и я хочу разрешить ваш скепсис.

Вот вам реальный сниппет из исходников Хобота, который формирует и отправляет запрос в Т-Банк:


$normalizedMessage = $this->normalizer->normalize($message);
$requestData = $this->prepareRequestData($normalizedMessage);
$request = $this->buildRequest($endpoint, $requestData);
$response = $this->httpClient->request($request);
$responseBody = $response->getBody();

// Тут дальше логирование, проверка статус-кода и денормализация.


В целом, ок. Но хорошо было бы избавиться от промежуточных присваиваний, не вкладывая при этом вызовы друг в друга, чтобы не пострадала читабельность. Спасибо Ларри, в ноябре можно будет отрефакторить так:


$responseBody =
$this->normalizer->normalize($message)
|> $this->prepareRequestData(...)
|> fn (array $data): Request => $this->buildRequest($endpoint, $data)
|> $this->httpClient->request(...)
|> fn (Response $response) => $response->getBody()
;


Стало лучше? Спорно. Но этот RFC — лишь первый шаг Ларри в сторону реально крутых пайпов. Нам нужно изучить Future Scope, чтобы понять весь замысел.

Помечтаем. Ноябрь 2026, и я рефакторю код уже вот так:


$responseBody =
$this->normalizer->normalize($message)
|> $this->prepareRequestData(...)
|> $this->buildRequest($endpoint, ?)
|> $this->httpClient->request(...)
|> $$->getBody()
;


Теперь действительно выглядит круто. Разберёмся, что тут происходит.

? — это partial function application, как first class callable syntax (...), но с возможностью передать (применить) часть аргументов и выбрать вопросами параметры для результирующей функции:


$this->buildRequest($endpoint, ?)
// дешугарится в
fn (array $data): Request => $this->buildRequest($endpoint, $data)


Кстати, для PFA Ларри уже делал RFC 5 лет назад. Но тогда возникли трудности с реализацией и Никита Попов предложил (...) в качестве более простой альтернативы. Теперь же потребность в ? сильно возросла и, я уверен, будет найдено решение.

$$ — это, грубо говоря, "object application":


$$->getBody()
// дешугарится в
static fn ($object) => $object->getBody()


Этот RFC — большой шаг для развития функционального стиля в PHP. Уже сейчас проекты fp4php и Crell/fp начинают играть новыми красками, а с ? и $$ будет вообще кайф.
_______

Пссс, сегодня в 16:00 19:30 на канале Пых.конф’25 появится конкурс, приз — бесплатный билет на конференцию. Подписывайся, чтобы не пропустить!
Пых
RFC Pipe operator принят, заглянем в будущее! https://wiki.php.net/rfc/pipe-operator-v3 Команда Typhoon, в особенности Андрей Клименко, очень внимательно следила за этим RFC. Недавно о нём писали фартаны, теперь RFC принят, и я хочу разрешить ваш скепсис.…
К сожалению, на подготовку условия задачи и настройку Хобота на приём ответов потребовалось больше времени, чем мы ожидали. Поэтому мы переносим конкурс на 19:30 — приезжайте домой с работы, подписывайтесь на Пых.конф’25 и будьте готовы!
Live stream scheduled for
Forwarded from Пых.конф’25
Итак, по итогам разбора решений победила @marfo4ka!
Поздравляем Марию — она обладатель первого билета на Пых.конф’25! 🎉

Решение задачи.

Этот конкурс — лишь начало, подписывайтесь на канал Пых.конф’25, чтобы ничего не пропустить.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Уточнение требований к платформе на уровне пакета

Представьте, что вы пишете библиотеку под PHP, которая будет правильно работать только в 64-разрядных системах. Например, vjik/telegram-bot-api использует тип int для идентификатора чата, а chat.id, согласно документации, может иметь до 52 значимых бит.

Как предотвратить установку такого пакета на 32-разрядной системе? Через Composer! В composer.json можно указать соответствующий суффикс для php:


{
"require": {
"php-64bit": "^8.4"
}
}


Другие поддерживаемые подтипы php:
php-ipv6 — сборка PHP с поддержкой IPv6 (без флага --disable-ipv6),
php-zts — потокобезопасная сборка PHP (с флагом --enable-zts),
php-debug — сборка PHP в режиме отладки (с флагом --enable-debug).

Чтобы скомбинировать несколько таких требований, не дублируя при этом констрейнт, можно поступить как с Core-расширениями:


{
"require": {
"php-64bit": "^8.4",
"php-ipv6": "*"
}
}


Вообще, всё это есть в документации Composer, но я случайно узнал на днях, изучая пакет danog/telegram-entities.

P.S.: Закинул PR Сергею.
Пыхап #4 × Lamoda Tech / 19 июня 2025

Ровно через 2 недели состоится четвёртый Пыхап! В программе 3 крутых доклада и новый формат — факап-разгоны!

👁 Observability в PHP без боли
Олег Мифле из Altenar научит держать руку на пульсе прода при помощи логов, метрик и трейсинга.

🎲 Абьюзим random_bytes()
Фёдор Кулаков из Lamoda проведёт в недра PHP, чтобы показать, как за минуту получить одинаковые "рандомные" значения.

📤 Кто отправит outbox?
Валентин Удальцов покажет, как эффективно отправлять сообщения, сохранённые вместе со стейтом.

🤣 Факап-разгоны
Опробуем новый формат от Lamoda Tech! 4 эксперта на сцене сначала обсудят свои факапы, а затем поразгоняют кейсы из Хобота, зала и чата трансляции. Путём голосования определим 2 победителей, которые получат бесплатные билеты на Пых.конф’25.

🍕 Афтепати и игры
После митапа можно будет остаться поболтать за пиццей.

📍 Пыхап пройдёт 19 июня в 19:10 (четверг) в офисе Lamoda (ул. Крылатская, 15). Вход бесплатный! Регистрация откроется завтра в 15:00 МСК на канале Пых.

📹 Как обычно, будет трансляция на YouTube и VK Видео с записью!
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Пыхап #4 × Lamoda Tech / 19 июня 2025 Ровно через 2 недели состоится четвёртый Пыхап! В программе 3 крутых доклада и новый формат — факап-разгоны! 👁 Observability в PHP без боли Олег Мифле из Altenar научит держать руку на пульсе прода при помощи логов,…
Открыта регистрация на Пыхап #4 × Lamoda Tech

В конце следующей недели пройдёт четвёртый Пыхап. В программе 3 доклада, факап-разгоны и афтепати!

🗓 19 июня в 19:10 (четверг)

📍 Офис Lamoda на ул. Крылатская, 15

🆓 Офлайн и онлайн участие бесплатное!

✏️ Регистрация через Хобота
Please open Telegram to view this post
VIEW IN TELEGRAM
С юбилеем, любимый PHP!

Только что заполнил форму от Данила и Сергея с CutCode. Если выиграю слона — подарю его автору лучшего вопроса на Пыхапе.

Русское сообщество сегодня активно празднует день рождения PHP:
• через 40 минут стрим на CutCode, где слона оттянут за уши,
• после — #RandomBeer с фартанами, где слона напоят пивом.

А ещё Рома Пронский у себя на канале собрал крутого LEGO-слона. Интересно, его можно будет заказать?

#PHP30
Forwarded from I’m CTO, bitch
Пых
Photo
Совет настоящего CTO!
Forwarded from Пых.конф’25
Media is too big
VIEW IN TELEGRAM
💙 Пых.конф’25 — старт продаж!

Пых.конф — новая PHP-конференция для всех от автора канала Пых Валентина Удальцова.

Единый язык. Кто-то из нас пишет на Yii и Laravel, другие выбирают Битрикс и WordPress, третьи экспериментируют с AMPHP и Swoole. Проекты разные. Подходы разные. Но язык один — PHP. Пых.конф даёт слово каждому!

Пространство PHP. Пых.конф объединяет русскоязычное PHP-сообщество в одной точке. Здесь делятся опытом, находят единомышленников и обсуждают, как проектировать, разрабатывать и поддерживать любые бэкенды на PHP.

🕔 19 сентября
🏘 Москва, Конгресс-центр ЦМТ
👥 400 участников
🔢 4 зала
🎙 28 докладов

Сегодня мы запускаем сайт и открываем продажи билетов по стартовой цене!

Заходи на conf.phpyh.ru и забирай свой билет за 10 000 рублей! Это цена для ранних пташек, завтра в 14:00 поднимем.

YouTube | VK Видео
Please open Telegram to view this post
VIEW IN TELEGRAM
"Пых" оскорбляет PHP?

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

Пролог. Много лет назад я работал в RUVENTS (кстати, у ребят оттуда теперь свой проект Eventico, они сделали нам сайт Пых.конф). И однажды к нам устроился парень, который постоянно называл PHP "пыхом". Наверняка я и раньше слышал такой жаргон, но именно в тот момент он отложился у меня в голове.

24 марта 2020, полночь. Я пишу очередной пост и вдруг понимаю, что название "Валентин Удальцов" не подходит этому каналу — на нём и до этого не было личных постов, а дальше уж точно он будет только про PHP. Я долго думаю, пробую разные идеи. И внезапно в голове выстреливает "пых". Это буквально момент озарения и мурашек — я сразу понимаю, что нашёл идеальное название: короткое, запоминающееся, релевантное. Ищу картинку с милым слоником и переименовываю канал.

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

А теперь самое главное. PHP называют "пыхом" не из-за курения — в этом нет никакого смысла, потому что язык программирования нельзя курить (разве что его документацию 😅). Его так называют из-за фонетического сходства с упрощённым прочтением на русский манер аббревиатуры PHP как "пхп". Всё! Никакого оскорбления или даже пренебрежения здесь нет — это просто жаргон русскоязычного IT-сообщества или, если хотите, термин единого языка нашего ограниченного контекста.

Этим постом я снимаю все предрассудки со слов "пых", "пыхтелка" и "пыхарь" в контексте PHP!
Please open Telegram to view this post
VIEW IN TELEGRAM