Пых
Пыхап #4 × Lamoda Tech. Конкурс факапов У нас набралось 18 факапов (Хобот + эксперты + зал + чат трансляции): https://telegra.ph/Pyhap-4--Lamoda-Tech-Konkurs-fakapov-06-21 Ниже два опроса, выбирай в них все понравившиеся факапы. В понедельник в 18:00 по…
Пыхап #4 × Lamoda Tech. Записи и фотки
Мы выложили отдельными роликами доклады, спасибо @whiskey_code за монтаж.
👁 Observability в PHP без боли — Олег Мифле, Altenar
YouTube | VK Видео | Слайды
🎲 Абьюзим random_bytes() — Фёдор Кулаков, Lamoda
YouTube | VK Видео | Слайды
📤 Кто отправит outbox? — Валентин Удальцов
YouTube | VK Видео | Слайды
📸 Фотки
https://cloud.mail.ru/public/uLf9/Z3kxmMz6P
Всем спасибо огромное за отличный митап!
Мы выложили отдельными роликами доклады, спасибо @whiskey_code за монтаж.
YouTube | VK Видео | Слайды
YouTube | VK Видео | Слайды
YouTube | VK Видео | Слайды
https://cloud.mail.ru/public/uLf9/Z3kxmMz6P
Всем спасибо огромное за отличный митап!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥50👍17❤15
Thesis Amqp 1.0.0
Многие заметили, что в проекте Thesis уже несколько месяцев подряд происходит какая-то движуха. Если вкратце, мы с Вадимом решили под этим именем выпустить набор современных асинхронных компонентов для PHP, а в будущем, вероятно, и свой фреймворк.
Основной фокус на ближайшее время — реализация недостающих в экосистеме неблокирующих драйверов для эффективного взаимодействия с инфраструктурой (в планах NATS, Kafka, gRPC, Cassandra, YDB).
Сегодня мы рады анонсировать стабильный, готовый к продакшну релиз пакета thesis/amqp:
• под капотом файберы и AMPHP 3, так что клиент можно использовать как в асинхронных, так и синхронных рантаймах,
• API для работы с подтверждениями в режиме publisher confirms,
• API для работы с возвратами при отправке сообщений с флагом
• API итераторов для упрощённого чтения сообщений из очереди,
• API публикации и получения сообщений эффективными батчами (меньше вызовов, потенциально умещаем несколько фреймов в 1 TCP-пакет),
• встроенная поддержка RPC,
• гибкая конфигурация и хорошо типизированный код.
Мы сделали чат Thesis Community, где вы можете задавать вопросы, делиться идеями и предлагать улучшения.
У нас к вам две просьбы:
⭐️ поставить звезду thesis/amqp,
👩🎨 помочь с логотипом для проекта Thesis — лучший скетч (можно использовать ИИ) мы отдадим дизайнеру на отрисовку, а автору подарим слоника Пых.
Многие заметили, что в проекте Thesis уже несколько месяцев подряд происходит какая-то движуха. Если вкратце, мы с Вадимом решили под этим именем выпустить набор современных асинхронных компонентов для PHP, а в будущем, вероятно, и свой фреймворк.
Основной фокус на ближайшее время — реализация недостающих в экосистеме неблокирующих драйверов для эффективного взаимодействия с инфраструктурой (в планах NATS, Kafka, gRPC, Cassandra, YDB).
Сегодня мы рады анонсировать стабильный, готовый к продакшну релиз пакета thesis/amqp:
• под капотом файберы и AMPHP 3, так что клиент можно использовать как в асинхронных, так и синхронных рантаймах,
• API для работы с подтверждениями в режиме publisher confirms,
• API для работы с возвратами при отправке сообщений с флагом
mandatory,• API итераторов для упрощённого чтения сообщений из очереди,
• API публикации и получения сообщений эффективными батчами (меньше вызовов, потенциально умещаем несколько фреймов в 1 TCP-пакет),
• встроенная поддержка RPC,
• гибкая конфигурация и хорошо типизированный код.
$client = new Client(Config::default());
$channel = $client->channel();
$channel->confirmSelect();
$confirmation = $channel->publishBatch([
new PublishMessage(
message: new Message(
body: 'Hello!',
deliveryMode: DeliveryMode::Persistent,
timestamp: new DateTimeImmutable(),
),
exchange: 'x',
routingKey: 'y',
mandatory: true,
),
// ...
]);
$result = $confirmation->await();
foreach ($result->unconfirmed as $unconfirmedMessage) {
// ...
}
foreach ($result->unrouted as $unroutedMessage) {
// ...
}
Мы сделали чат Thesis Community, где вы можете задавать вопросы, делиться идеями и предлагать улучшения.
У нас к вам две просьбы:
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - thesis-php/amqp: Non-blocking (fiber based) client for AMQP 0.9.1.
Non-blocking (fiber based) client for AMQP 0.9.1. Contribute to thesis-php/amqp development by creating an account on GitHub.
👍47🔥32❤12❤🔥4
Forwarded from Пых.конф’25 — главное PHP-событие этого года!
Мы выложили всю программу!
Несколько тем для затравки:
• PHP True Async: Асинхронность из коробки
• Нестандартное управление памятью в PHP
• Как писать неблокирующие клиенты на PHP
• Переход с Laravel на Swoole+Hyperf
• RAG: Внедряем AI в PHP-бэкенд
• Внутри Yii3
• YDB: от SQL к распределённому SQL
⚡️ https://conf.phpyh.ru/program
Успей купить билет по июльской цене за 13 500 рублей!
Несколько тем для затравки:
• PHP True Async: Асинхронность из коробки
• Нестандартное управление памятью в PHP
• Как писать неблокирующие клиенты на PHP
• Переход с Laravel на Swoole+Hyperf
• RAG: Внедряем AI в PHP-бэкенд
• Внутри Yii3
• YDB: от SQL к распределённому SQL
Успей купить билет по июльской цене за 13 500 рублей!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍12👏6❤2🎉2🫡2
Пых
Пыхари на Saint Highload++, встречаемся в 15:20 у стенда компании, которая пишет на PHP, Garage Eight! Сделаем совместное фото. Кирилл Несмеянов и я будем всех ждать!
2025-06-24 15.36.16-0528-TVS05684-N.jpg
730.7 KB
Совместные фото пыхарей на стенде Garage Eight на Saint Highload++
Мы так долго искали эти фотки, и в итоге нашли, спасибо двум Елизаветам (@chernoveli из Garage Eight, и @liza0lis из Онтико) за помощь.
И спасибо всем, кто успел вовремя прийти на стенд, с остальными сфоткаемся на Пых.конф’25!
У "гаражей" на Highload, кстати, был доклад Как правильно готовить RabbitMQ в главном зале. Витя Михайлов уже высоко оценил наш thesis/amqp, будем ждать, что скоро затащит его в кодовую базу Garage Eight.😉
Мы так долго искали эти фотки, и в итоге нашли, спасибо двум Елизаветам (@chernoveli из Garage Eight, и @liza0lis из Онтико) за помощь.
И спасибо всем, кто успел вовремя прийти на стенд, с остальными сфоткаемся на Пых.конф’25!
У "гаражей" на Highload, кстати, был доклад Как правильно готовить RabbitMQ в главном зале. Витя Михайлов уже высоко оценил наш thesis/amqp, будем ждать, что скоро затащит его в кодовую базу Garage Eight.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25🔥18👍13
Forwarded from Пых.конф’25 — главное PHP-событие этого года!
Добавляем connection.blocked в thesis/amqp
Стрим с Вадимом Занфиром — спикером и членом ПК Пых.конф’25
Вадим — эксперт в базах данных и брокерах сообщений, отлично разбирается в протоколах и структурах данных, в свободное от работы в VK Музыке время разрабатывает низкоуровневые драйвера для PHP на базе неблокирующего I/O.
Вчера туториал к написанному Вадимом Thesis Amqp смержили в официальный репозиторий RabbitMQ!
По этому поводу мы решили организовать стрим, на котором под руководством Вадима Валентин добавит поддержку механизма
Присоединяйтесь к нам в четверг в 19 в YouTube и VK Видео!
____________
До конца пятницы билеты на Пых.конф по 13 500 рублей, в субботу повысим цену!
Стрим с Вадимом Занфиром — спикером и членом ПК Пых.конф’25
Вадим — эксперт в базах данных и брокерах сообщений, отлично разбирается в протоколах и структурах данных, в свободное от работы в VK Музыке время разрабатывает низкоуровневые драйвера для PHP на базе неблокирующего I/O.
Вчера туториал к написанному Вадимом Thesis Amqp смержили в официальный репозиторий RabbitMQ!
По этому поводу мы решили организовать стрим, на котором под руководством Вадима Валентин добавит поддержку механизма
connection.blocked в Thesis Amqp.Присоединяйтесь к нам в четверг в 19 в YouTube и VK Видео!
____________
До конца пятницы билеты на Пых.конф по 13 500 рублей, в субботу повысим цену!
👍26🔥18❤7
Пых.конф’25 — мы идём прямо к цели!
На днях прошло 4 месяца с момента, как я решил провести Пых.конф. Кое-что уже получилось, поэтому хочется присесть, выдохнуть и рассказать, как прошли эти месяцы.
Core Team. Первым делом я собрал программный комитет. Я не знаю, как это работает, но список нужных людей мгновенно появился в моей голове: Алексей Нечаев, Вадим Занфир, Иван Поддубный, Павел Иванов, Сергей Жук, Сергей Предводителев. Чуть позже к нам присоединилась Анна Иванова. Все очень разные, но невероятно крутые, а самое главное — верят в PHP и хотят сделать его лучше. Ребята помогли наладить кучу процессов — кто-то привёл маркетолога, кто-то посоветовал юриста и дизайнера, кто-то помог с поиском партнёров, кто-то нашёл выход на крутого спикера. В итоге это не просто программный комитет — это суперкоманда, которая ежедневно творит Пых.конф.
Сайт. У меня есть замечательные друзья — проект Eventico Ильи Чертилова. У ребят платформа, на которой они делают крупные ивенты со всякими шишками и регистрацией через ФСО. А ещё у них гениальный дизайнер, который нарисовал наш сайт. Так мы запустили conf.phpyh.ru. Сначала главную и FAQ, потом регистрацию, личный кабинет и оплату, а недавно — программу и онлайн-участие. Возможность не делать сайт самому и с нуля — один из самых невероятных сюрпризов этого проекта.
Площадка. У меня есть ещё одни замечательные друзья — Маркетинговое Агентство "Ф-ПРО" Марии Захаревской. Зимой мы неожиданно пересеклись с их менеджером Марией Гатиной, а в марте, когда я обратился в агентство, она буквально растолкала коллег и вызвалась вести мой проект.❤️ За пару дней мы с Машей посмотрели несколько площадок, а потом приехали в ЦМТ и я сразу попросил выслать договор. Сейчас мы прорабатываем оформление, навигацию, звук, свет и трансляцию. В ближайшее время подготовка площадки станет нашим основным направлением.
Партнёры. Искать партнёров для новой конференции непросто. С вашей помощью мы связались с HR и DevRel порядка 70 компаний, имеющих отношение к PHP. Среди них нашлись те, кто в кратчайшие сроки согласовал бюджет, и прямо сейчас мы с ними проектируем стенды и обсуждаем активности. С некоторыми из остальных предварительно договорились на участие в следующем году😏 или на Пыхап.
Кстати, всё ещё не поздно рассказать в своей компании про Пых.конф’25 и предложить связаться со мной насчёт партнёрства.
Программа. Пока что это была самая CPU-intensive задача. Мы поставили цель заполучить в программу всех: начинающих спикеров и "звёзд", разработчиков и CTO, теоретиков и практиков, тех, кто делает PHP, и тех, кто им пользуется. К 1 июля мы собрали 72 заявки и сели мапить их на 28 слотов... Половину программы мы определили единогласно, а за вторую пришлось даже голосовать. В итоге получилось ровно то, чего мы так хотели: разнообразие и баланс. Я даже не могу вам ничего подсветить — мне дорог каждый доклад.
Подготовка докладов. Сформировав программу, мы запустили подготовку. Каждому докладчику назначали по куратору из ПК, а в особых случаях добавили, как их Иван называет, "вторых пилотов". Ещё мы для ребят организовали специальную лекцию со знаменитым ведущим IT-конференций Алексеем Обровцом — получилось очень душевно и мотивирующе.
Билеты. На текущий момент мы продали полторы сотни билетов. Учитывая расслабленный летний сезон, это отличная цифра. Но для того, чтобы мы могли осуществить всё задуманное, её нужно удвоить. В субботу у нас повысится цена участия. Я знаю, что многие из вас не покупают билет, потому что не уверены в своих планах на осень, однако по закону мы будем обязаны делать полные возвраты вплоть до 9 сентября. То есть вы ничем не рискуете, зато можете сэкономить. Ещё мы теперь готовы массово выставлять счета на компании по цене для физических лиц. Все, кто пришлёт на conf@phpyh.ru реквизиты, количество и тип билетов до конца пятницы, сможет оплатить счёт в течение следующих двух недель с сохранением текущей цены.💙
На днях прошло 4 месяца с момента, как я решил провести Пых.конф. Кое-что уже получилось, поэтому хочется присесть, выдохнуть и рассказать, как прошли эти месяцы.
Core Team. Первым делом я собрал программный комитет. Я не знаю, как это работает, но список нужных людей мгновенно появился в моей голове: Алексей Нечаев, Вадим Занфир, Иван Поддубный, Павел Иванов, Сергей Жук, Сергей Предводителев. Чуть позже к нам присоединилась Анна Иванова. Все очень разные, но невероятно крутые, а самое главное — верят в PHP и хотят сделать его лучше. Ребята помогли наладить кучу процессов — кто-то привёл маркетолога, кто-то посоветовал юриста и дизайнера, кто-то помог с поиском партнёров, кто-то нашёл выход на крутого спикера. В итоге это не просто программный комитет — это суперкоманда, которая ежедневно творит Пых.конф.
Сайт. У меня есть замечательные друзья — проект Eventico Ильи Чертилова. У ребят платформа, на которой они делают крупные ивенты со всякими шишками и регистрацией через ФСО. А ещё у них гениальный дизайнер, который нарисовал наш сайт. Так мы запустили conf.phpyh.ru. Сначала главную и FAQ, потом регистрацию, личный кабинет и оплату, а недавно — программу и онлайн-участие. Возможность не делать сайт самому и с нуля — один из самых невероятных сюрпризов этого проекта.
Площадка. У меня есть ещё одни замечательные друзья — Маркетинговое Агентство "Ф-ПРО" Марии Захаревской. Зимой мы неожиданно пересеклись с их менеджером Марией Гатиной, а в марте, когда я обратился в агентство, она буквально растолкала коллег и вызвалась вести мой проект.
Партнёры. Искать партнёров для новой конференции непросто. С вашей помощью мы связались с HR и DevRel порядка 70 компаний, имеющих отношение к PHP. Среди них нашлись те, кто в кратчайшие сроки согласовал бюджет, и прямо сейчас мы с ними проектируем стенды и обсуждаем активности. С некоторыми из остальных предварительно договорились на участие в следующем году
Кстати, всё ещё не поздно рассказать в своей компании про Пых.конф’25 и предложить связаться со мной насчёт партнёрства.
Программа. Пока что это была самая CPU-intensive задача. Мы поставили цель заполучить в программу всех: начинающих спикеров и "звёзд", разработчиков и CTO, теоретиков и практиков, тех, кто делает PHP, и тех, кто им пользуется. К 1 июля мы собрали 72 заявки и сели мапить их на 28 слотов... Половину программы мы определили единогласно, а за вторую пришлось даже голосовать. В итоге получилось ровно то, чего мы так хотели: разнообразие и баланс. Я даже не могу вам ничего подсветить — мне дорог каждый доклад.
Подготовка докладов. Сформировав программу, мы запустили подготовку. Каждому докладчику назначали по куратору из ПК, а в особых случаях добавили, как их Иван называет, "вторых пилотов". Ещё мы для ребят организовали специальную лекцию со знаменитым ведущим IT-конференций Алексеем Обровцом — получилось очень душевно и мотивирующе.
Билеты. На текущий момент мы продали полторы сотни билетов. Учитывая расслабленный летний сезон, это отличная цифра. Но для того, чтобы мы могли осуществить всё задуманное, её нужно удвоить. В субботу у нас повысится цена участия. Я знаю, что многие из вас не покупают билет, потому что не уверены в своих планах на осень, однако по закону мы будем обязаны делать полные возвраты вплоть до 9 сентября. То есть вы ничем не рискуете, зато можете сэкономить. Ещё мы теперь готовы массово выставлять счета на компании по цене для физических лиц. Все, кто пришлёт на conf@phpyh.ru реквизиты, количество и тип билетов до конца пятницы, сможет оплатить счёт в течение следующих двух недель с сохранением текущей цены.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍26❤14🥱1😎1
Добавляем connection.blocked в thesis/amqp
Через час у меня стрим с Вадимом Занфиром — автором кучи неблокирующих компонентов Thesis, а также спикером и членом ПК Пых.конф’25!
В прямом эфире я под его руководством реализую фичу, которую запросил уже знакомый вам подписчик, Витя из Garage Eight — возможность слушать
https://youtu.be/0H2hguG6J8s
https://vkvideo.ru/video-228746873_456239068
Готовьте вопросы по асинхронному PHP, проекту Thesis и Пых.конф. Три самых активных комментатора получат слоников Пых!
Через час у меня стрим с Вадимом Занфиром — автором кучи неблокирующих компонентов Thesis, а также спикером и членом ПК Пых.конф’25!
В прямом эфире я под его руководством реализую фичу, которую запросил уже знакомый вам подписчик, Витя из Garage Eight — возможность слушать
connection.(un)blocked при общении с RabbitMQ. Ещё мы вам покажем кое-что новенькое!https://youtu.be/0H2hguG6J8s
https://vkvideo.ru/video-228746873_456239068
Готовьте вопросы по асинхронному PHP, проекту Thesis и Пых.конф. Три самых активных комментатора получат слоников Пых!
👍14🔥9👏5❤1😐1
Пых
Добавляем connection.blocked в thesis/amqp Через час у меня стрим с Вадимом Занфиром — автором кучи неблокирующих компонентов Thesis, а также спикером и членом ПК Пых.конф’25! В прямом эфире я под его руководством реализую фичу, которую запросил уже знакомый…
Добавляем connection.blocked в thesis/amqp
Начинаем! Комментировать можно под этим постом.
https://youtu.be/0H2hguG6J8s
https://vkvideo.ru/video-228746873_456239068
Начинаем! Комментировать можно под этим постом.
https://youtu.be/0H2hguG6J8s
https://vkvideo.ru/video-228746873_456239068
👍8❤6🔥5
Пых
Добавляем connection.blocked в thesis/amqp Начинаем! Комментировать можно под этим постом. https://youtu.be/0H2hguG6J8s https://vkvideo.ru/video-228746873_456239068
Спасибо всем, кто пришёл! Нам очень понравилось.
Я запушил изменения, которые мы успели сделать. В следующий раз должны закончить эту фичу.
Слоников выиграли самые активные участники чата: Игорь Маркин, Антон Зеньков и Сергей Вершинин. Игорь за стрим закинул аж 2 PR в Thesis.💙
Как вам формат? Помогает в понимании асинка?
Я запушил изменения, которые мы успели сделать. В следующий раз должны закончить эту фичу.
Слоников выиграли самые активные участники чата: Игорь Маркин, Антон Зеньков и Сергей Вершинин. Игорь за стрим закинул аж 2 PR в Thesis.
Как вам формат? Помогает в понимании асинка?
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Connection blocked/unblocked support by vudaltsov · Pull Request #71 · thesis-php/amqp
Closes #61.
🔥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 без скобок:
Также всем огромное спасибо за 43 лайка на тикете в PHP CS Fixer про добавление
На фоне всех этих событий я выпустил очередной мажор своего phpyh/coding-standard, забампив там PHP до 8.3 и PHP CS Fixer до 3.84.
А ещё я недавно проходил мимо доки и обнаружил, что у команды
____________
До конца дня офлайн-билет на Пых.конф’25 отдаём физикам и юрикам по 13 500, а онлайн — по 10 000!
В новой, третьей, версии 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!
GitHub
new_expression_parentheses - shall we add to 8.4 migration set ? · Issue #8717 · PHP-CS-Fixer/PHP-CS-Fixer
shall we add to 8.4 migration set ? Originally posted by @keradus in #8246 (comment)
🔥42👍17❤8👎1
Пых
Добавляем connection.blocked в thesis/amqp Через час у меня стрим с Вадимом Занфиром — автором кучи неблокирующих компонентов Thesis, а также спикером и членом ПК Пых.конф’25! В прямом эфире я под его руководством реализую фичу, которую запросил уже знакомый…
Добавляем connection.blocked в thesis/amqp. Часть 2
В этот четверг я под руководством Вадима, автора неблокирующих компонентов Thesis и спикера Пых.конф’25, начал реализовывать возможность слушать connection.(un)blocked в
Завтра в 10 утра мы продолжим и попытаемся добить задачу. Приходите все, кому интересен асинк в PHP, неблокирующий I/O и нюансы работы протокола AMQP 0.9.1.
https://youtu.be/fJwMmXfggQM
https://vkvideo.ru/video-228746873_456239069
В этот четверг я под руководством Вадима, автора неблокирующих компонентов 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
YouTube
Добавляем connection.blocked в thesis/amqp с Вадимом Занфиром, спикером Пых.конф’25. Часть 2
В этот четверг я под руководством Вадима, автором неблокирующих компонентов Thesis и спикером Пых.конф’25, начал реализовывать возможность слушать connection.(un)blocked в thesis/amqp (https://youtu.be/0H2hguG6J8s, https://vkvideo.ru/video-228746873_456239068…
👍16🔥11❤6
Пых
Добавляем connection.blocked в thesis/amqp. Часть 2 В этот четверг я под руководством Вадима, автора неблокирующих компонентов Thesis и спикера Пых.конф’25, начал реализовывать возможность слушать connection.(un)blocked в thesis/amqp (YouTube, VK Видео, PR).…
Добавляем connection.blocked в thesis/amqp. Часть 2
Начинаем через 5 минут, всех ждём! В конце-таки покажем кое-что новенькое, как я обещал в прошлый раз.
Комментировать можно под этим постом.
https://youtu.be/fJwMmXfggQM
https://vkvideo.ru/video-228746873_456239069
Начинаем через 5 минут, всех ждём! В конце-таки покажем кое-что новенькое, как я обещал в прошлый раз.
Комментировать можно под этим постом.
https://youtu.be/fJwMmXfggQM
https://vkvideo.ru/video-228746873_456239069
YouTube
Добавляем connection.blocked в thesis/amqp с Вадимом Занфиром, спикером Пых.конф’25. Часть 2
В этот четверг я под руководством Вадима, автором неблокирующих компонентов Thesis и спикером Пых.конф’25, начал реализовывать возможность слушать connection.(un)blocked в thesis/amqp (https://youtu.be/0H2hguG6J8s, https://vkvideo.ru/video-228746873_456239068…
🔥8❤4👍3🙈1
Пых
Добавляем connection.blocked в thesis/amqp. Часть 2 Начинаем через 5 минут, всех ждём! В конце-таки покажем кое-что новенькое, как я обещал в прошлый раз. Комментировать можно под этим постом. https://youtu.be/fJwMmXfggQM https://vkvideo.ru/video-228746873_456239069
Добавляем connection.blocked в thesis/amqp. Часть 3
Стрим прервался по неизвестной причине, продолжили тут:
https://youtu.be/xbQ00TfHmx4
https://vkvideo.ru/video-228746873_456239070
Стрим прервался по неизвестной причине, продолжили тут:
https://youtu.be/xbQ00TfHmx4
https://vkvideo.ru/video-228746873_456239070
👍5🔥4❤1
Forwarded from Пых.конф’25 — главное PHP-событие этого года!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍80🔥51❤22🎉13😎4⚡1👏1🤮1🕊1🥱1
Пых
Слоны 💙 прилетели!
Доставка слоников Пых!
Наконец-то я нашёл время на правки бота, чтобы вы могли комфортно выбрать способ доставки!
Залетайте в Хобота, выбирайте "🐘 Слоник Пых", определяйтесь с вариантом доставки, заполняйте недостающую информацию и подтверждайте отправку.
Как только все заполнят, я одним днём всё отправлю, чтобы эффективно закрыть этот вопрос.
@phpyhobot
С теми, кто в качестве вознаграждения выбрал встречу, я связался в личке. Если что-то не получается, пишите мне.
Наконец-то я нашёл время на правки бота, чтобы вы могли комфортно выбрать способ доставки!
Залетайте в Хобота, выбирайте "🐘 Слоник Пых", определяйтесь с вариантом доставки, заполняйте недостающую информацию и подтверждайте отправку.
Как только все заполнят, я одним днём всё отправлю, чтобы эффективно закрыть этот вопрос.
@phpyhobot
С теми, кто в качестве вознаграждения выбрал встречу, я связался в личке. Если что-то не получается, пишите мне.
🔥21👍9❤8🥱1
Проблемы родственных классов
Небольшой детектив вам на ночь в субботу.
Вы наверняка знаете, что наследники одного и того же базового класса могут читать друг у друга защищённые свойства, объявленные в этом базовом классе:
Я, кстати, не могу согласиться с Сашей Макаровым, что это прям в чистом виде механизм дружественных классов в PHP. Всё-таки в других языках "дружба" декларируется специальным ключевым словом
На днях в internals Jonathan Vollebregt обратил внимание на интересное поведение защищённого свойства при его переопределении:
Вопрос: это баг или нет?
Для начала надо понять, является ли вообще доступ к общим защищённым свойствам из родственных классов официальной фичёй 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" и не поменяется в будущем.
В таком случае кажется более логичным добавить в доку всю эту информацию, а также исправить текущее поведение при переопределении, чтобы всё было консистентно... Что вы думаете по этому поводу?
В любом случае я бы не рекомендовал таким пользоваться. Все эти игры с наследованием и видимостью оправданы разве что в недрах какого-нибудь фреймворка в классах с пометкой
Небольшой детектив вам на ночь в субботу.
Вы наверняка знаете, что наследники одного и того же базового класса могут читать друг у друга защищённые свойства, объявленные в этом базовом классе:
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🔥58👍30❤11😁9💯2