Пых
8.35K subscribers
211 photos
11 videos
6 files
524 links
Блог @vudaltsov о разработке на PHP.

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

Вакансии НЕ размещаются.
Download Telegram
Пых.конф’25 — мы идём прямо к цели!

На днях прошло 4 месяца с момента, как я решил провести Пых.конф. Кое-что уже получилось, поэтому хочется присесть, выдохнуть и рассказать, как прошли эти месяцы.

Core Team. Первым делом я собрал программный комитет. Я не знаю, как это работает, но список нужных людей мгновенно появился в моей голове: Алексей Нечаев, Вадим Занфир, Иван Поддубный, Павел Иванов, Сергей Жук, Сергей Предводителев. Чуть позже к нам присоединилась Анна Иванова. Все очень разные, но невероятно крутые, а самое главное — верят в PHP и хотят сделать его лучше. Ребята помогли наладить кучу процессов — кто-то привёл маркетолога, кто-то посоветовал юриста и дизайнера, кто-то помог с поиском партнёров, кто-то нашёл выход на крутого спикера. В итоге это не просто программный комитет — это суперкоманда, которая ежедневно творит Пых.конф.

Сайт. У меня есть замечательные друзья — проект Eventico Ильи Чертилова. У ребят платформа, на которой они делают крупные ивенты со всякими шишками и регистрацией через ФСО. А ещё у них гениальный дизайнер, который нарисовал наш сайт. Так мы запустили conf.phpyh.ru. Сначала главную и FAQ, потом регистрацию, личный кабинет и оплату, а недавно — программу и онлайн-участие. Возможность не делать сайт самому и с нуля — один из самых невероятных сюрпризов этого проекта.

Площадка. У меня есть ещё одни замечательные друзья — Маркетинговое Агентство "Ф-ПРО" Марии Захаревской. Зимой мы неожиданно пересеклись с их менеджером Марией Гатиной, а в марте, когда я обратился в агентство, она буквально растолкала коллег и вызвалась вести мой проект. ❤️ За пару дней мы с Машей посмотрели несколько площадок, а потом приехали в ЦМТ и я сразу попросил выслать договор. Сейчас мы прорабатываем оформление, навигацию, звук, свет и трансляцию. В ближайшее время подготовка площадки станет нашим основным направлением.

Партнёры. Искать партнёров для новой конференции непросто. С вашей помощью мы связались с HR и DevRel порядка 70 компаний, имеющих отношение к PHP. Среди них нашлись те, кто в кратчайшие сроки согласовал бюджет, и прямо сейчас мы с ними проектируем стенды и обсуждаем активности. С некоторыми из остальных предварительно договорились на участие в следующем году 😏 или на Пыхап.

Кстати, всё ещё не поздно рассказать в своей компании про Пых.конф’25 и предложить связаться со мной насчёт партнёрства.

Программа. Пока что это была самая CPU-intensive задача. Мы поставили цель заполучить в программу всех: начинающих спикеров и "звёзд", разработчиков и CTO, теоретиков и практиков, тех, кто делает PHP, и тех, кто им пользуется. К 1 июля мы собрали 72 заявки и сели мапить их на 28 слотов... Половину программы мы определили единогласно, а за вторую пришлось даже голосовать. В итоге получилось ровно то, чего мы так хотели: разнообразие и баланс. Я даже не могу вам ничего подсветить — мне дорог каждый доклад.

Подготовка докладов. Сформировав программу, мы запустили подготовку. Каждому докладчику назначали по куратору из ПК, а в особых случаях добавили, как их Иван называет, "вторых пилотов". Ещё мы для ребят организовали специальную лекцию со знаменитым ведущим IT-конференций Алексеем Обровцом — получилось очень душевно и мотивирующе.

Билеты. На текущий момент мы продали полторы сотни билетов. Учитывая расслабленный летний сезон, это отличная цифра. Но для того, чтобы мы могли осуществить всё задуманное, её нужно удвоить. В субботу у нас повысится цена участия. Я знаю, что многие из вас не покупают билет, потому что не уверены в своих планах на осень, однако по закону мы будем обязаны делать полные возвраты вплоть до 9 сентября. То есть вы ничем не рискуете, зато можете сэкономить. Ещё мы теперь готовы массово выставлять счета на компании по цене для физических лиц. Все, кто пришлёт на [email protected] реквизиты, количество и тип билетов до конца пятницы, сможет оплатить счёт в течение следующих двух недель с сохранением текущей цены. 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍2614🥱1😎1
Добавляем connection.blocked в thesis/amqp

Через час у меня стрим с Вадимом Занфиром — автором кучи неблокирующих компонентов Thesis, а также спикером и членом ПК Пых.конф’25!

В прямом эфире я под его руководством реализую фичу, которую запросил уже знакомый вам подписчик, Витя из Garage Eight — возможность слушать connection.(un)blocked при общении с RabbitMQ. Ещё мы вам покажем кое-что новенькое!

https://youtu.be/0H2hguG6J8s
https://vkvideo.ru/video-228746873_456239068

Готовьте вопросы по асинхронному PHP, проекту Thesis и Пых.конф. Три самых активных комментатора получат слоников Пых!
👍14🔥9👏51😐1
Пых
Добавляем connection.blocked в thesis/amqp Начинаем! Комментировать можно под этим постом. https://youtu.be/0H2hguG6J8s https://vkvideo.ru/video-228746873_456239068
Спасибо всем, кто пришёл! Нам очень понравилось.

Я запушил изменения, которые мы успели сделать. В следующий раз должны закончить эту фичу.

Слоников выиграли самые активные участники чата: Игорь Маркин, Антон Зеньков и Сергей Вершинин. Игорь за стрим закинул аж 2 PR в Thesis. 💙

Как вам формат? Помогает в понимании асинка?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍13👏5
Пых
В PHP-CS-Fixer смержили мой фиксер new_expression_parentheses! Позавчера состоялся релиз v3.76.0 Kids Playground, куда наконец-то попал фиксер new_expression_parentheses, который мы делали в Open Source цеху (#1, #4). Он убирает скобки вокруг new выражений…
New без скобок в PER 3.0 и фиксер-сете PHP84Migration

В новой, третьей, версии PER Coding Style рекомендуется использовать мой new без скобок:

When accessing a class member immediately after instantiating a new class, the instantiation SHOULD NOT be wrapped in parentheses. For example:

new Foo()->someMethod();
new Foo()->someStaticMethod();
new Foo()->someProperty;
new Foo()::someStaticProperty;
new Foo()::SOME_CONSTANT;

And the following SHOULD be avoided:

(new Foo())->someMethod();


Также всем огромное спасибо за 43 лайка на тикете в PHP CS Fixer про добавление new_expression_parentheses в сет @PHP84Migration — мейнтейнеры испугались, сделали PR и релизнули!

На фоне всех этих событий я выпустил очередной мажор своего phpyh/coding-standard, забампив там PHP до 8.3 и PHP CS Fixer до 3.84.

А ещё я недавно проходил мимо доки и обнаружил, что у команды php-cs-fixer fix --dry-run аж в 2023 году появился алиас php-cs-fixer check — идеально для CI.
____________

До конца дня
офлайн-билет на Пых.конф’25 отдаём физикам и юрикам по 13 500, а онлайн — по 10 000!
🔥42👍168👎1
Пых
Добавляем connection.blocked в thesis/amqp Через час у меня стрим с Вадимом Занфиром — автором кучи неблокирующих компонентов Thesis, а также спикером и членом ПК Пых.конф’25! В прямом эфире я под его руководством реализую фичу, которую запросил уже знакомый…
Добавляем connection.blocked в thesis/amqp. Часть 2

В этот четверг я под руководством Вадима, автора неблокирующих компонентов Thesis и спикера Пых.конф’25, начал реализовывать возможность слушать connection.(un)blocked в thesis/amqp (YouTube, VK Видео, PR).

Завтра в 10 утра мы продолжим и попытаемся добить задачу. Приходите все, кому интересен асинк в PHP, неблокирующий I/O и нюансы работы протокола AMQP 0.9.1.

https://youtu.be/fJwMmXfggQM
https://vkvideo.ru/video-228746873_456239069
👍16🔥116
Пых.конф’25 на главной php.net!

Спасибо подписчикам за лайки на PR, а Сергею Пантелееву за мерж!

💙
Please open Telegram to view this post
VIEW IN TELEGRAM
👍79🔥4922🎉13😎41👏1🤮1🕊1🥱1
Пых
Слоны 💙 прилетели!
Доставка слоников Пых!

Наконец-то я нашёл время на правки бота, чтобы вы могли комфортно выбрать способ доставки!

Залетайте в Хобота, выбирайте "🐘 Слоник Пых", определяйтесь с вариантом доставки, заполняйте недостающую информацию и подтверждайте отправку.

Как только все заполнят, я одним днём всё отправлю, чтобы эффективно закрыть этот вопрос.

@phpyhobot

С теми, кто в качестве вознаграждения выбрал встречу, я связался в личке. Если что-то не получается, пишите мне.
🔥218👍8🥱1
Проблемы родственных классов

Небольшой детектив вам на ночь в субботу.

Вы наверняка знаете, что наследники одного и того же базового класса могут читать друг у друга защищённые свойства, объявленные в этом базовом классе:


abstract class Father
{
protected string $data = 'x';
}

final class Son extends Father {}

final class Daughter extends Father
{
public function iCanSeeBrothersProtected(Son $brother): void
{
echo $brother->data;
}
}

// выведет x
new Daughter()->iCanSeeBrothersProtected(new Son());


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

На днях в internals Jonathan Vollebregt обратил внимание на интересное поведение защищённого свойства при его переопределении:


final class Son extends Father
{
// просто переопределяем свойство, ничего не меняя
protected string $data = 'x';
}

// и теперь выбрасывает Cannot access protected property Son::$data
new Daughter()->iCanSeeBrothersProtected(new Son());


Вопрос: это баг или нет?

Для начала надо понять, является ли вообще доступ к общим защищённым свойствам из родственных классов официальной фичёй PHP? В документации по видимости из фразы "members declared protected can be accessed only within the class itself and by inheriting and parent classes" такое поведение однозначным образом не следует. В других C-подобных языках такого тоже нет: C#, Kotlin.

Однако, пробежавшись по всем ссылкам статьи PHP friendly классы Саши Макарова, я нашёл тикет #37632 от мая 2006 года, который просит исправить отсутствие такой фичи как баг, и его исправляют в PHP 5.2! Далее в 2020 Никита Попов отвечает Саше в Твиттере, что такое поведение "looks fine" и не поменяется в будущем.

В таком случае кажется более логичным добавить в доку всю эту информацию, а также исправить текущее поведение при переопределении, чтобы всё было консистентно... Что вы думаете по этому поводу?

В любом случае я бы не рекомендовал таким пользоваться. Все эти игры с наследованием и видимостью оправданы разве что в недрах какого-нибудь фреймворка в классах с пометкой @internal. В бизнесовом же проекте чем понятнее код, тем ниже вероятность, что его перепишут на Go. 😅
1🔥55👍3011😁9💯2
В PHP могут появиться дженерики!

Ребята из PHP Foundation, Larry Garfield и Gina Banyard, рассказали, какими могут быть дженерики в PHP в обозримом будущем.

https://thephp.foundation/blog/2025/08/05/compile-generics/
https://www.reddit.com/r/PHP/comments/1mhe7qf/compile_time_generics_yay_or_nay/


interface Repository<T: Entity>
{
public function find(Id $id): ?T;

public function add(T $entity): void;
}

class BlogPostRepository implements Repository<BlogPost>
{
// ...
}


Пока не стоит писать кипятком, потому что в статье очень много "но". Тем не менее, круто, что PHP Foundation продолжает исследовать это направление (см. предыдущую статью State of Generics and Collections).

Собираемся на днях обсудить это со спикерами Пых.конф’25. Ставьте 🤩, если хотите такой стрим!
🤩126👍35🔥19🤔4🤣42🌚1
💙 Пых.конф’25 — главное PHP-событие года!

PHP сегодня в самом расцвете сил:

• 20 человек в ядре, финансируемых PHP Foundation.
• Релизы каждый год с десятками новых фичей.
• Async, типизация, атрибуты, выразительный синтаксис.
• Обслуживает миллиарды пользователей по всему миру.

Оставалась только одна проблема — русскоязычным инженерам не хватало пространства для обсуждения этим тем. Мы её решили.

Пых.конф — абсолютно новая конференция с актуальной программой, доступными билетами и насыщенным offstage-движем.

• Асинхронность и протоколы для неблокирующего I/O.
• RAG в PHP-бэкендах и круглый стол «Кодим с ИИ».
• Архитектурные каноны: DDD, модульность, идемпотентность.
• Производительность: от памяти и массивов до воркеров и CI.
• Yii3, Doctrine, Swoole, WordPress и Битрикс — экосистема во всей красе.
• Не только PHP: YDB, Postgres, Docker, OpenAPI.
• Fail-митап и Открытый микрофон для всех, кто захочет высказаться.
• Игры и конкурсы на стендах партнёров — компаний, преданных PHP.

Мы сдедали то, чего сами ждали много лет. Не хватает только тебя.

Забрать билет | Ничего не пропустить | Собрать свою программу
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥49👍14122🫡2💯1
Интервью

Ребята, на следующей неделе Антон Морев будет брать у меня очередное интервью! Пишите в комментариях вопросы, на которые вы бы хотели получить ответы.
👍25🔥106
PHP × Telegram = 💙

Интересно, что в списке библиотек для работы с Telegram Bot API PHP идёт первым с самым большим количеством вариантов.

https://core.telegram.org/bots/samples
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥169🤡3🤔2
Стрим с Валентином Удальцовым. 15 августа 19:00

Уже третий раз у меня в гостях будет Валентин. Автор канала Пых и конференции Пых.конф'25, посвященной PHP и всему, что с ним связано.

Решили собраться поговорить с ним на темы, связанные с PHP, конференцией и другими прелестями его жизни.

Приходите на прямой эфир в пятницу 15 августа в 19.00 (Москва).

Задавайте свои вопросы и автор лучшего вопроса, традиционно, получит от меня пиццу, а автору второго самого интересного вопроса будет PHP-слоник от Валентина. Также можно написать свои вопросы в комментах к публикации к посту в канале Валентина.

Ссылки на прямой эфир:

📹 YouTube | VK 📹
👍16🔥136