Пых
Задача для любителей трейтов На этой неделе я добавил полную поддержку трейтов в Typhoon Reflection 0.3.x. Вдохновившись полученными знаниями, придумал вам задачку: trait T { abstract public function x(): void; } final class C { use T { …
Сколько методов нужно имплементировать в классе C, чтобы он стал корректным?
Anonymous Quiz
32%
1
26%
3
13%
4
30%
В классе C уже есть ошибка в use, методами его не спасти
February 23, 2024
Forwarded from Галера Морева
Прямой эфир с Валентином Удальцовым
Когда-то давно я делал стрим с Валентином, где мы общались про него, его опыт, немного про PHP и планы на будущее.
Будущее наступило — прошло почти 4 года и сегодня Валентин приедет ко мне в гости и мы проведем еще один прямой эфир и пообщаемся на разные темы.
Мне лично интересно обсудить как он решился на запуск своего образовательного проекта после стольких лет стабильной работы фуллтайм и как ему это нравится (или нет).
Правила для зрителей стандартные — задавайте вопросы и автору самого лучшего вопроса положена пицца за мой счет:)
Начнем в 19.00 сегодня!
Стрим будет тут: youtube.com/live/QPdhrhY0UGY
Когда-то давно я делал стрим с Валентином, где мы общались про него, его опыт, немного про PHP и планы на будущее.
Будущее наступило — прошло почти 4 года и сегодня Валентин приедет ко мне в гости и мы проведем еще один прямой эфир и пообщаемся на разные темы.
Мне лично интересно обсудить как он решился на запуск своего образовательного проекта после стольких лет стабильной работы фуллтайм и как ему это нравится (или нет).
Правила для зрителей стандартные — задавайте вопросы и автору самого лучшего вопроса положена пицца за мой счет:)
Начнем в 19.00 сегодня!
Стрим будет тут: youtube.com/live/QPdhrhY0UGY
February 26, 2024
Новая система типов • Трейты • Атрибуты • Совместимость с родной рефлексией • Монорепо
Жду всех на PHP Point сегодня в
19:00
. Про третий поток тоже расскажу.https://youtu.be/zW0wNb_2i2s
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Typhoon 0.3.0 • Новая система типов • Трейты • Атрибуты • Совместимость с родной рефлексией
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
March 1, 2024
Пых
Typhoon — бескомпромиссная статическая рефлексия для PHP с поддержкой phpDoc-типов и резолвингом дженериков.
https://github.com/typhoon-php/typhoon/releases/tag/0.3.0
https://youtu.be/zW0wNb_2i2s
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release 0.3.0 New type system, traits, attributes support · typhoon-php/typhoon
New type system.
Traits, attributes, class constants support.
Native reflection compatibility.
Traits, attributes, class constants support.
Native reflection compatibility.
March 1, 2024
Ну что ж, после релиза Typhoon с чувством выполненного долга возвращаюсь к
Набор на третий поток будет осуществляться так же, как в прошлый раз. Завтра (4 марта) в 15:00 по Москве на канале Пых появится ссылка на срез знаний. При проверке я сначала буду отбирать анкеты с правильными ответами, а потом ранжировать их по времени. Удачи!
https://vudaltsov.notion.site/PHP-d4be63d0b6b7486787861fdbab080d1c
Please open Telegram to view this post
VIEW IN TELEGRAM
March 3, 2024
Пых
Пробная лекция Хардкорного курса PHP
По вашим просьбам сделал демо-ролик на основе лекции второго потока. Из него вы узнаете две вещи: как устроен мой курс и как конфигурировать схему базы данных в Doctrine без использования ORM, не теряя при этом поддержку миграций.
https://youtu.be/B4e7d3oYEeQ
По вашим просьбам сделал демо-ролик на основе лекции второго потока. Из него вы узнаете две вещи: как устроен мой курс и как конфигурировать схему базы данных в Doctrine без использования ORM, не теряя при этом поддержку миграций.
https://youtu.be/B4e7d3oYEeQ
YouTube
Пробная лекция Хардкорного курса PHP. Конфигурируем Doctrine Schema без ORM (1080p)
Подробнее о курсе: https://hardcorephp.ru
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
March 4, 2024
Пых
Срез знаний для 3-его потока Хардкорного курса PHP!
https://forms.gle/Tr2y4JNnj9qhHytm9
Удачи!😉️️️️️️
https://forms.gle/Tr2y4JNnj9qhHytm9
Удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Срез знаний для 3-его потока Хардкорного курса PHP
Привет! При проверке я сначала буду отбирать анкеты с правильными ответами и здравыми рассуждениями, а потом ранжировать их по времени. Если не знаешь ответ, лучше пропустить вопрос или написать хоть что-то, что помнишь, чем вставить ерунду из GPT. Удачи!
March 4, 2024
Пых
Срез знаний для 3-его потока Хардкорного курса PHP! https://forms.gle/Tr2y4JNnj9qhHytm9 Удачи! 😉️️️️️️
Набор на 3-ий поток Хардкорного курса завершён!
Все принятые студенты получили письма с приглашениями на почту.
Немного статистики и наблюдений:
▸ 123 ответа на момент написания этого поста,
▸ 20 человек набралось уже на 41-ой анкете, которую отправили 4 марта в 15:50:53.
▸ ответы в этот раз более вдумчивые, "зелёные" анкеты идут более плотно.
На скриншоте общая картина. Как видите, не обязательно было отвечать на все вопросы правильно, чтобы попасть на курс. Завтра в 15:00 разберём срез и интересные ответы, приглашаю всех на стрим: https://youtu.be/-BCacGtTUY4.
P.S.: Форму не буду закрывать в демонстрационных целях.
Все принятые студенты получили письма с приглашениями на почту.
Немного статистики и наблюдений:
▸ 123 ответа на момент написания этого поста,
▸ 20 человек набралось уже на 41-ой анкете, которую отправили 4 марта в 15:50:53.
▸ ответы в этот раз более вдумчивые, "зелёные" анкеты идут более плотно.
На скриншоте общая картина. Как видите, не обязательно было отвечать на все вопросы правильно, чтобы попасть на курс. Завтра в 15:00 разберём срез и интересные ответы, приглашаю всех на стрим: https://youtu.be/-BCacGtTUY4.
P.S.: Форму не буду закрывать в демонстрационных целях.
March 6, 2024
Пых
Набор на 3-ий поток Хардкорного курса завершён! Все принятые студенты получили письма с приглашениями на почту. Немного статистики и наблюдений: ▸ 123 ответа на момент написания этого поста, ▸ 20 человек набралось уже на 41-ой анкете, которую отправили 4…
Пишите в комментариях, насколько удобно смотреть стримы фоном в рабочее время. Это поможет мне понять, стоит проводить PHP-линчи днём.
https://youtu.be/-BCacGtTUY4
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разбираем срез знаний для 3-его потока Хардкорного курса PHP
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
March 7, 2024
Пых
Ilija Tovilio, на текущий момент один из самых активных контрибьюторов в PHP, только что дал мне карму для публикации RFC и пожелал удачи! Буду считать это хорошим знаком! 💪 https://externals.io/message/122052#122053
📝 new MyClass()->method() без скобок
В конце прошлого года я придумал правку для синтаксиса PHP, которая позволит не оборачивать
Только что я наконец-то опубликовал RFC через internals! В течение как минимум двух недель будет проходить обсуждение, потом открою голосование.
RFC: https://wiki.php.net/rfc/new_without_parentheses
Реализация и тесты: https://github.com/php/php-src/pull/13029
Можно следить за обсуждением на сайте, а можно подписаться на рассылку и принять в нём участие.
В конце прошлого года я придумал правку для синтаксиса PHP, которая позволит не оборачивать
new
выражения в cкобки для обращения к ним:
final class MyClass
{
const CONSTANT = 'constant';
public static $staticProperty = 'staticProperty';
public static function staticMethod(): string { return 'staticMethod'; }
public $property = 'property';
public function method(): string { return 'method'; }
public function __invoke(): string { return '__invoke'; }
}
var_dump(
new MyClass()::CONSTANT, // string(8) "constant"
new MyClass()::$staticProperty, // string(14) "staticProperty"
new MyClass()::staticMethod(), // string(12) "staticMethod"
new MyClass()->property, // string(8) "property"
new MyClass()->method(), // string(6) "method"
new MyClass()(), // string(8) "__invoke"
);
Только что я наконец-то опубликовал RFC через internals! В течение как минимум двух недель будет проходить обсуждение, потом открою голосование.
RFC: https://wiki.php.net/rfc/new_without_parentheses
Реализация и тесты: https://github.com/php/php-src/pull/13029
Можно следить за обсуждением на сайте, а можно подписаться на рассылку и принять в нём участие.
April 8, 2024
В эту пятницу в 15:20 по местному времени я выступаю в Ульяновске на Стачке с докладом про Typhoon (секция Backend). Расскажу, как мы собирали систему типов typhoon/type, вдохновляясь Psalm и PHPStan, как её редуцировали, как искали в ней место для self, parent и static.
Ульяновские пыхари, отзовитесь в комментариях! Можем дополнительно организоваться до или после конфы и где-то посидеть.
https://ul24.nastachku.ru/schedule
Please open Telegram to view this post
VIEW IN TELEGRAM
April 9, 2024
Пых
Я на месте. Кто тут и хочет поболтать, пишите.
April 12, 2024
Podlodka PHP Crew
На ближайшей неделе стартует очередная подлодка PHP, в этот раз про БД. Но уже сегодня пройдёт открытая сессия «Зачем переходить на MySQL 8, еслиесть PostgreSQL в 5.х всё устраивает?»
В среду 24 апреля в 19:00 мы встретимся с Кириллом Несмеяновым, чтобы найти ответ на другой вопрос: «Зачем использовать ORM, если есть чистый SQL?»
Ну а так каждый день будет что-то интересное: Redis, Elasticsearch, Doctrine, масштабирование и миграции.
Зашифрованный одноразовый бесплатный билет для пыхаря:
https://podlodka.io/phpcrew
Мем от @markin_igor из PHP Fart Time.
Реклама. ИП Толстая Елена Петровна ИНН:507503278104, erid:2SDnjbrpi81
На ближайшей неделе стартует очередная подлодка PHP, в этот раз про БД. Но уже сегодня пройдёт открытая сессия «Зачем переходить на MySQL 8, если
В среду 24 апреля в 19:00 мы встретимся с Кириллом Несмеяновым, чтобы найти ответ на другой вопрос: «Зачем использовать ORM, если есть чистый SQL?»
Ну а так каждый день будет что-то интересное: Redis, Elasticsearch, Doctrine, масштабирование и миграции.
Зашифрованный одноразовый бесплатный билет для пыхаря:
4655434b-2d4f-854d-ad55-53452d53514c
(уже использован) и многоразовый промокод на 500 рублей: PHPYH
.https://podlodka.io/phpcrew
Мем от @markin_igor из PHP Fart Time.
Реклама. ИП Толстая Елена Петровна ИНН:507503278104, erid:2SDnjbrpi81
April 18, 2024
Своя игра PHP!
Вчера на Подлодке я проиграл Кириллу, сегодня постараюсьнадрать задницу выиграть у Петра и Алексея!
https://www.youtube.com/watch?v=ef0LPaVNJLs
Вчера на Подлодке я проиграл Кириллу, сегодня постараюсь
https://www.youtube.com/watch?v=ef0LPaVNJLs
YouTube
Своя игра от CutCode. Второй выпуск викторины по PHP
Готовьтесь к необычному испытанию знаний и заряду хорошим настроением! В 20:00 (мск) 25 апреля на YouTube-канале CutCode стартует игра-викторина в стиле “Своей игры”
Приготовьтесь к захватывающим раундам, юмору и увлекательным заданиям, которые проверят ваши…
Приготовьтесь к захватывающим раундам, юмору и увлекательным заданиям, которые проверят ваши…
April 25, 2024
Уязвимость в iconv() в GNU C Library
Новость про CVE-2024-2961 в привязке к PHP так раздули, что у многих сложилось впечатление, будто уязвимость в самом языке и масштаб последствий для пыхарей невероятно велик. Это не так. Уязвимость проявляется только при использовании функций и стрим-фильтров расширения
Думаю, все понимают, что в современном коде это маловероятно.
Также не ждите патч-релиза со стороны PHP.
Подробнее в официальном ответе на сайте PHP: https://www.php.net/archive/2024.php#2024-04-24-1
Новость про CVE-2024-2961 в привязке к PHP так раздули, что у многих сложилось впечатление, будто уязвимость в самом языке и масштаб последствий для пыхарей невероятно велик. Это не так. Уязвимость проявляется только при использовании функций и стрим-фильтров расширения
iconv
с непровалидированными кодировками, полученными снаружи. Ну то есть надо прям вот такое иметь в коде, чтобы словить атаку:
iconv('utf-8', $_REQUEST['charset'], 'my_text');
Думаю, все понимают, что в современном коде это маловероятно.
Также не ждите патч-релиза со стороны PHP.
glibc
подключается динамически и не компилируется в исполняемый файл. Достаточно просто обновить glibc
.Подробнее в официальном ответе на сайте PHP: https://www.php.net/archive/2024.php#2024-04-24-1
www.php.net
PHP: Hypertext Preprocessor
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
April 26, 2024
Пых
📝 new MyClass()->method() без скобок В конце прошлого года я придумал правку для синтаксиса PHP, которая позволит не оборачивать new выражения в cкобки для обращения к ним: final class MyClass { const CONSTANT = 'constant'; public static $staticProperty…
https://wiki.php.net/rfc/new_without_parentheses#proposed_voting_choices
Кстати, следить за всеми RFC можно через монитор: https://php-rfc-watch.beberlei.de/
P.S.: Всех с праздником!
Please open Telegram to view this post
VIEW IN TELEGRAM
May 9, 2024
Пых
Дмитрий Стогов одобрил мой PR! На текущий момент RFC набрал 16 голосов "за" и 2 "против".
May 13, 2024
ML-assisted completion
Примерно с месяц у меня в PhpStorm включен бесплатный Full Line Code Completion. Если бы после обновления он не был "искаропки", я б, наверное, так и не попробовал ничего подобного. Но раз судьба свела, вот мои наблюдения.
Без помощника:
1. размышляю над тем, что написать дальше (по сути, это самый сложный и долгий этап),
2. пишу код, используя хоткеи, шаблоны и стандартный предсказуемый автокомплит.
С помощником:
1. размышляю над тем, что написать дальше,
2. ввожу пару символов, вижу на экране подсказку (иногда с запозданием),
3. зрительно анализирую её (дополнительная мыслительная деятельность),
4. с вероятностью 40% ассистент не угадывает точь-в-точь,
5. с вероятностью 60% угадывает, нажимаю Tab.
В итоге у меня формируется стойкое ощущение, что я парно программирую с туповатым джуном, который играет со мной в угадайку, причём в тот момент, когда я уже и так знаю, что нужно сделать. По сути, он отвлекает меня от работы! По этой причине мне скорее хочется выключить плагин, чем продолжить им пользоваться.
Возможно, я сейчас написал какой-то ретроградский пост и мне просто нужно установить полноценный AI Assistant, тогда-то всё встанет на свои места. Или я пишу не тот код — надо меньше думать, больше формошлёпить и крудить, а не тайфуны типунить... Короче, разубедите или поддержите меня — я в этой теме новичок.
Примерно с месяц у меня в PhpStorm включен бесплатный Full Line Code Completion. Если бы после обновления он не был "искаропки", я б, наверное, так и не попробовал ничего подобного. Но раз судьба свела, вот мои наблюдения.
Без помощника:
1. размышляю над тем, что написать дальше (по сути, это самый сложный и долгий этап),
2. пишу код, используя хоткеи, шаблоны и стандартный предсказуемый автокомплит.
С помощником:
1. размышляю над тем, что написать дальше,
2. ввожу пару символов, вижу на экране подсказку (иногда с запозданием),
3. зрительно анализирую её (дополнительная мыслительная деятельность),
4. с вероятностью 40% ассистент не угадывает точь-в-точь,
goto 2;
5. с вероятностью 60% угадывает, нажимаю Tab.
В итоге у меня формируется стойкое ощущение, что я парно программирую с туповатым джуном, который играет со мной в угадайку, причём в тот момент, когда я уже и так знаю, что нужно сделать. По сути, он отвлекает меня от работы! По этой причине мне скорее хочется выключить плагин, чем продолжить им пользоваться.
Возможно, я сейчас написал какой-то ретроградский пост и мне просто нужно установить полноценный AI Assistant, тогда-то всё встанет на свои места. Или я пишу не тот код — надо меньше думать, больше формошлёпить и крудить, а не тайфуны типунить... Короче, разубедите или поддержите меня — я в этой теме новичок.
JetBrains Marketplace
Full Line Code Completion - IntelliJ IDEs Plugin | Marketplace
Designed to supercharge your code completion with multi-token proposals utilizing a deep learning model. Enjoy the benefits of advanced code completion offline, as it...
May 14, 2024
Пых
Дмитрий Стогов одобрил мой PR! На текущий момент RFC набрал 16 голосов "за" и 2 "против".
Официально объявляю свой RFC принятым!
Не буду ждать утра, чтобы сообщить, что я только что закрыл голосование на отметке в 25 голосов против 4. Это означает, что в PHP 8.4 мы с вами сможем писать
До сих пор не верится, что шальная попытка законтрибьютить в PHP, предпринятая за завтраком 26 декабря прошлого года, увенчалась успехом. Теперь есть запал для пары других идей. Попробую летом их оформить.
Всем огромное спасибо за поддержку!
Не буду ждать утра, чтобы сообщить, что я только что закрыл голосование на отметке в 25 голосов против 4. Это означает, что в PHP 8.4 мы с вами сможем писать
new
без скобок! Осталось только дождаться мёрджа PR в мастер.До сих пор не верится, что шальная попытка законтрибьютить в PHP, предпринятая за завтраком 26 декабря прошлого года, увенчалась успехом. Теперь есть запал для пары других идей. Попробую летом их оформить.
Всем огромное спасибо за поддержку!
Telegram
Пых
new MyClass()->method() без скобок!
Вдохновлённый митапом, разобрался с синтаксисом Bison и закинул свой первый Pull Request в исходники PHP. Это изменение позволит обращаться к объектам, созданным через new, не оборачивая их в скобки. Во избежание неоднозначности…
Вдохновлённый митапом, разобрался с синтаксисом Bison и закинул свой первый Pull Request в исходники PHP. Это изменение позволит обращаться к объектам, созданным через new, не оборачивая их в скобки. Во избежание неоднозначности…
May 24, 2024
Пых
Официально объявляю свой RFC принятым! Не буду ждать утра, чтобы сообщить, что я только что закрыл голосование на отметке в 25 голосов против 4. Это означает, что в PHP 8.4 мы с вами сможем писать new без скобок! Осталось только дождаться мёрджа PR в мастер.…
После исправления косяка, замеченного зорким глазом Никиты Попова, мой PR был окончательно одобрен и наконец-то попал в master! У них там как-то странно это происходит — через отдельный commit и закрытый PR, хотя у меня во всех проектах на GitHub аналогичный squash + rebase по кнопке даёт фиолетовый статус "merged", а не красный "closed". Но не суть.
Тем временем я закинул в internals ещё одну идею. Я предложил вынести методы
ArrayAccess::offsetExists
, offsetGet
в отдельный интерфейс с рабочим названием ArrayAccessRead
, чтобы можно было делать иммутабельные коллекции, поддерживающие $object['key']
синтаксис только в режиме чтения. Но выяснилось, что уже есть драфт отличного RFC, который предлагает куда более глубокое переосмысление кривого ArrayAccess
. Надеюсь, что он тоже попадёт в 8.4, а я пока подумаю над чем-то ещё. Please open Telegram to view this post
VIEW IN TELEGRAM
May 28, 2024