Пых
8.32K subscribers
182 photos
10 videos
4 files
471 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
Пых
PHP True Async: обсуждаем RFC с автором 1 марта Дмитрий опубликовал первую версию RFC "PHP True Async". Цели предложения: установить стандарт конкурентного программирования на PHP, разработать С-API, отрефакторить существующие функции и расширения. В процессе…
PHP True Async: обсуждаем RFC с автором

Сегодня в 19:00 по Москве мы встретимся с Дмитрием и Вадимом, чтобы обсудить RFC PHP True Async и перспективы появления нативной асинхронности в PHP. Основные темы:

▸ Опыт других языков.
▸ Экосистемы AMPHP, ReactPHP, Swoole.
▸ Нужна ли в PHP structured concurrency? Как это согласуется с файберами?
▸ Будет ли поддержка многопоточности, как, например, в Go?
▸ На какие этапы будет разбит такой большой проект?

https://youtu.be/K9FnRQIzklM
https://vkvideo.ru/video-228746873_456239042

🎫 Авторы самых интересных вопросов в чате трансляции получат бесплатные билеты на третий Пыхап!

Для подготовки рекомендую изучить RFC, а также посмотреть доклад Вадима Чем вам не угодил асинхронный PHP? Другие полезные ссылки в первом анонсе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Краудфандинг. Лекция по MessageBus

Проект Коллекционный PHP-слоник Пых успешно собрал средства. Вы перевыполнили план аж на 21%! 💙

Как мы действуем дальше:

▸ Завтра (12 апреля) в 14:00 я прочитаю лекцию по MessageBus. Для получения ссылки на трансляцию обратитесь к новоиспечённому помощнику канала Пых — Хоботу.

▸ По слоникам PHP 8 я передал информацию Сергею Пантелееву. Он уже всем написал в личку и приступил к отправке.

Пых-слоники, как вы знаете из предыдущих новостей, давно запущены в производство и должны приехать ко мне в начале июля. Тогда же я начну проводить личные встречи.

Ещё раз всем спасибо за участие и до встречи на лекции!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Пыхап в эту пятницу вечером!

Третий митап от канала Пых пройдёт 18 апреля в 18:30 в Лофте Событие на Таганке.

Как всегда, мы будем транслировать доклады на YouTube и VK Видео с записью, однако завести полезные знакомства, задать вопросы команде YCLIENTS и душевно подискутировать на Открытом микрофоне можно только офлайн!

Регистрируйся, осталось всего несколько билетов: https://phpyh.timepad.ru/event/3250220/

В программе:

😨 Раскапываем редис
Алексей Сидоркин раскроет нам все нюансы работы с Redis: кластеризация, AOF vs RDB, структуры данных и клиенты для PHP.

💰 Лайвкодим крипту на PHP
Сергей Жук снова достанет свои Money и, пошарив экран, покажет, как перевести крипту и не остаться с "нонсом".

🎤 Открытый микрофон (только офлайн)
В этой секции любой участник сможет на 5-10 минут завладеть сценой, поделиться проблемой или решением и получить обратную связь. Кирилл Несмеянов и Антон Морев уже планируют принять участие. Напиши мне, если тоже хочешь выступить.

🍕 Традиционное пицца-driven общение в перерывах, а после митапа — афтепати в грузинском ресторане.

💛 Спонсор третьего Пыхапа — YCLIENTS.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Пыхап в эту пятницу вечером! Третий митап от канала Пых пройдёт 18 апреля в 18:30 в Лофте Событие на Таганке. Как всегда, мы будем транслировать доклады на YouTube и VK Видео с записью, однако завести полезные знакомства, задать вопросы команде YCLIENTS…
Сегодня вечером состоится третий Пыхап!

🏘 Офлайн
В 18:30, мы будем ждать тебя в лофте «Событие» на Николоямской, 28. Там тебя встретит Инна, будь готов показать ей билет, который пришёл на почту после регистрации.

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

📹 Онлайн
Трансляция начнётся в 19:00 в YouTube, VK Видео и Telegram. Все вопросы из чата я обязательно задам спикеру. По этим же ссылкам Пыхап, как обычно, можно будет посмотреть в записи.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Сегодня вечером состоится третий Пыхап! 🏘 Офлайн В 18:30, мы будем ждать тебя в лофте «Событие» на Николоямской, 28. Там тебя встретит Инна, будь готов показать ей билет, который пришёл на почту после регистрации. Если у тебя поменялись планы, ты можешь…
Пыхап #3

Буквально через несколько минут начнётся третий Пыхап! Залетайте в трансляцию в YouTube, VK Видео и Telegram, комментировать можно прямо под этим постом!

😨 Раскапываем редис
Алексей Сидоркин раскроет нам все нюансы работы с Redis: кластеризация, AOF vs RDB, структуры данных и клиенты для PHP.
⬇️Слайды

💰 Лайвкодим крипту на PHP
Сергей Жук снова достанет свои Money и, пошарив экран, покажет, как перевести крипту и не остаться с "нонсом".
Получившийся код Серёга выложит после Пыхапа.

🎤 Открытый микрофон (только офлайн)
В этой секции любой участник сможет на 5-10 минут завладеть сценой, поделиться проблемой или решением и получить обратную связь.

💛 Спонсор третьего Пыхапа — YCLIENTS.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Пыхап #3 Буквально через несколько минут начнётся третий Пыхап! Залетайте в трансляцию в YouTube, VK Видео и Telegram, комментировать можно прямо под этим постом! 😨 Раскапываем редис Алексей Сидоркин раскроет нам все нюансы работы с Redis: кластеризация…
Третий Пыхап прошёл на ура!

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

Доклады Алексея и Сергея мы скоро зальём отдельными роликами. Открытый микрофон прошёл так же душевно и разнопланово, как и в прошлый раз:

Антон Морев рассказал, как меняется отношение разработчика к работе и деньгам, когда он начинает свой бизнес.

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

Николай Шаповалов посвятил в положение дел в сообществе Drupal.

Кирилл Несмеянов подловил на незнании нескольких особенностей PHP.

Следующий Пыхап мы проведём совместно с Lamoda Tech в июне. Подробности будут чуть позже. До встречи!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ищем спикеров для четвёртого Пыхапа × Lamoda Tech в июне

Ориентировочные темы докладов:
• статический анализ в PHP, сравнение с другими языками,
• Rector и плагины,
• проектирование и документация API,
• телеметрия и мониторинг,
• организация кода (Vertical Slice Architecture, coupling/cohesion),
• альтернативные рантаймы (RoadRunner, FrankenPHP, ngx-php),
• CI/CD пайплайны для PHP.

Подать заявку: https://forms.gle/KCggoZFFTZcwoNqq8
_______________

Мы выложили плейлист с докладами последнего Пыхапа: YouTube, VK Видео.
Всем, привет! С прошлыми майскими праздниками, и с будущими тоже! 🎉

Во всех PHP сообществах наступила тишина, или все отдыхают, или усердно работают 😄
Так или иначе, под шумок апрельских и майских деньков ворвался и был одобрен RFC по добавлению новых функций для работы с массивами: array_first() и array_last() в PHP 8.5.

Как видно из названий, это функции для получения первого и последнего значения передаваемого массива. Примеры результатов:

array_first([1, 2, 3]); // 1
array_first([2, 3]); // 2
array_first(['a' => 2, 'b' => 1]); // 2
array_first([null, 2, 3]); // null
array_first([]); // null
array_first([$obj, 2, 3]); // $obj
array_first([1])); // 1
array_first([true]); // true

array_last([1, 2, 3]); // 3
array_last([2, 3]); // 3
array_last(['a' => 2, 'b' => 1]); // 1
array_last([2, 3, null]); // null
array_last([]); // null
array_last([2, 3, $obj]); // $obj
array_last([1])); // 1
array_last([true]); // true


И тут возможно возникнет вопрос? Что? Это было добавлено только что, неужели ранее подобных функций не было в PHP, языке в котором есть почти все что угодно для работы с массивами.
И действительно только что. Достаточно вспомнить, что массив в PHP - это монструозный комбайн всего, что только можно придумать. Соответственно метод "влоб" - получения элемента по нулевому индексу, не всегда даст ожидаемый результат:

$array = [
"g" => 456,
2,
4 => "string"
];

var_dump($array[0]); //выдаст 2
[$first] = $array; // какая-нибудь деструктуризация выдаст тоже 2


Заглянем в недалекое прошлое, в 2018 год, PHP 7.3, в то время были приняты такие функции как array_key_first() и array_key_last().

Но возможно для кого-то будет новостью, что в том же RFC предлагалось ввести так же такие функции как array_value_first() и array_value_last(), что логично возвращали бы значения первого и последнего элемента в массиве. Но эти функции были отклоненны, почему, не совсем понятно, может кто-то из подписчиков помнит и знает доподлинную причину отклонения, либо просто время не пришло, и нужны были дополнительные 7 лет для переосознания 😀

Так вот с тех пор получать ключи стало проще, нежели ранешнее array_keys($array)[0], а если еще массив был пустым, то обязательная проверка на пустоту или вообще увеличение когнитивной сложности реализации в виде циклов (что-то достаточно приближенно к современному программированию на каком-нибудь golang).

Получение первого и последнего элементов массива тоже стало проще:

var_dump($array[array_key_first($array)]);  // 456
var_dump($array[array_key_last($array)]); // "string"


А что было до PHP 7.3? Кроме указанного способа по получению ключей, а затем значений, еще с PHP 4, были функции reset() и end(). Были, есть и будут :) И используя их можно получить вполне ожидаемый результат:

var_dump(reset($array));  //456
var_dump(end($array));exit; // "string"

// или те же array_shift, array_pop тоже технически выполнят что нужно

var_dump(array_shift($array)); //456
var_dump(array_pop($array)); // "string"


так зачем тогда все эти телодвижения по вводу новых функций?

Просто все существующие хитрости,семантически являются неправильным подходом, поскольку они изменяют внутреннее состояние массива. Кроме того, это также не работает должным образом для, например, массива, возвращаемого из функции или других подобных непредусмотренных случаев.

А как вы думаете, нужны ли были эти новые функции или итак по старинке справились бы?
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Друзья, я долго вынашивал этот план. Заручился поддержкой трёх родных ивент-компаний и сегодня принял окончательное решение: В сентябре у нас будет Пых.Конф! Подробности чуть позже.
Сегодня забронировал площадку.

Пых.Конф пройдёт 19 сентября в Центре Международной Торговли.

Вскоре после майских будет сайт, билеты по стартовой цене и форма подачи доклада.
Пых
Ищем спикеров для четвёртого Пыхапа × Lamoda Tech в июне Ориентировочные темы докладов: • статический анализ в PHP, сравнение с другими языками, • Rector и плагины, • проектирование и документация API, • телеметрия и мониторинг, • организация кода (Vertical…
Идея доклада для четвёртого Пыхапа × Lamoda Tech

Сегодня многие компании, исконно писавшие на PHP, зачем-то переходят на Go. Зачастую пыхари вынуждены перестраиваться на лету, и нам было бы очень интересно послушать про этот опыт.

Какие технические преимущества лично тебе дал новый язык (эффективное управление памятью, горутины, не нужен pgbouncer/amqproxy)? Где поджидали разочарования (нет как таковых фреймворков, не принято юзать ORM)? Что было непривычным и как проходил твой "paradigm shift"?

Если ты уверенно кодишь и на PHP, и на Go и готов к середине июня подготовить такой доклад, напиши мне в личку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Большое обновление Хобота!

Вы давно меня просили воскресить Бусти. Но я в первую очередь программист, а не предприниматель, поэтому я решаю задачи не эффективно, а так, чтобы пописать код. 😅

Короче, теперь в Хоботе можно приобрести мои лекции. Одна уже есть, две в процессе. Надеюсь, собственная технология распространения материалов замотивирует меня их побольше создавать...

Бот написан на AMPHP с использованием их HTTP сервера, HTTP клиента и драйвера для Postgres. Ещё бот стал экспериментальной площадкой для новых компонентов Thesis. Другие подробности вы можете узнать у него самого!

В будущем я планирую научить Хобота помогать мне с менторингом, регистрировать на Пыхап и даже предоставлять доступ к курсам. Главное, что уже есть модуль биллинга.

Буду рад замечаниям и предложениям по улучшению UX.

@phpyhobot

MessageBus: от сервисов к обработчикам

Первая доступная для покупки лекция — та самая, про MessageBus. Это двухчасовой монтаж стрима, который я проводил в апреле для участников слонового краудфандинга (кстати, пора мне узнать, как там дела на фабрике).

Рекомендую её всем, кому интересна message-driven архитектура, CQRS, проектирование пайплайнов с middleware, устройство компонентов а-ля symfony/messenger и, конечно, дженерики. Подробное описание лекции в Хоботе.

@phpyhobot
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Так-с, есть ошибка. Чиню! 🤔
Работает! Два момента исправил:

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

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

@phpyhobot