Пых
8.36K subscribers
212 photos
12 videos
6 files
528 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
Пых
Добавляем 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🔥5122🎉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
👍34🔥169🤡4🤔2
Стрим с Валентином Удальцовым. 15 августа 19:00

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

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

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

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

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

📹 YouTube | VK 📹
👍20🔥147🤡1
Галера Морева
Стрим с Валентином Удальцовым. 15 августа 19:00 Уже третий раз у меня в гостях будет Валентин. Автор канала Пых и конференции Пых.конф'25, посвященной PHP и всему, что с ним связано. Решили собраться поговорить с ним на темы, связанные с PHP, конференцией…
В гостях у Морева

Через полчаса начинаем! Авторы самых классных вопросов получат питсуп от Антона и слоника Пых от меня.

Комментировать можно под этим постом!

Морев:
https://youtu.be/lORQH9sD0uA
https://vk.com/video-215823350_456239043

Пых:
https://youtu.be/wF8qYSqkrTc
https://vkvideo.ru/video-228746873_456239072
🔥94👍3🤡1
Пых
Доставка слоников Пых! Наконец-то я нашёл время на правки бота, чтобы вы могли комфортно выбрать способ доставки! Залетайте в Хобота, выбирайте "🐘 Слоник Пых", определяйтесь с вариантом доставки, заполняйте недостающую информацию и подтверждайте отправку.…
Слоники Пых

Друзья, практически все слоники доставлены. Если вам не пришло уведомление от Почты России или СДЭК, проверьте трекинг в Хоботе.

К сожалению, пока не было возможности сделать отправку уведомлений прямо в боте, но это в планах.
🔥17👍106
Переход с Laravel на Swoole+Hyperf / Александр Миронов

Когда твое приложение растёт, Laravel начинает показывать свою истинную природу — медленную, прожорливую и неспособную масштабироваться без костылей.

Но что же делать - переехать на Symfony? Лишь полумеры! Внедрить Octane? Неплохо, но имеет ряд критических недостатков.

Решение было рядом: Hyperf.

В рамках данного доклада Александр рассмотрит ключевые ограничения классического Laravel при построении высоконагруженных сервисов, расскажет о причинах отказа от Laravel Octane, микросервисов на Go и приведёт аргументы в пользу использования Hyperf на базе Swoole.

https://conf.phpyh.ru/program/swoole-hyperf

Александр — инженер в Digital Clouds на проекте Platferrum. Интересуется разработкой под высокие нагрузки и всем, что позволяет забустить привычный синхронный PHP (RoadRunner, Swoole). Считает, что современный PHP развивается в правильном направлении и берёт лучшие практики из других языков.
🔥54👍23😁11🤮6🤝32
Boson — честно нативный PHP

Прямо сейчас на CutCode начнётся стрим с Кириллом Несмеяновым про его проект Boson — убийцу NativePHP и отличное решение для запуска действительно нативных приложений на PHP.

Я на днях поставил boson-php/runtime, скопировал из доки пару строк в index.php, запустил его, и всё — у меня на маке окно с WebView!

Уверен, что скоро многие инструменты под PHP возьмут Boson на вооружение для вывода дебаг-информации и рендеринга отчётов. Например, могу легко себе представить, как в отдельном окне открывается список мутантов после запуска Infection.

https://youtu.be/MJJebd0Tjyo
👍25🔥12🤔9🤯21👎1😱1