🎙Новый митап от SkyNet в Санкт-Петербурге!
Ребята из отдела разработки питерского провайдера SkyNet очень расстроились, что на стриме к выходу PHP 8.2 никто не отчитался о ситуации в их городе, и решили организовать свой митап. Ну а я рад помочь с распространением информации о такой замечательной инициативе!
Итак, первый митап состоится вечером 16-го февраля в офисе SkyNet на Репишева, 20.
Предусмотрено два доклада:
• PHP-схема взаимодействия с frontend-ом с типами и валидацией (Дмитрий Юдин, SkyNet).
• Твоё выступление, пыхарь! Предлагай тему в личку Павлу @lukazavr.
https://skynet-meetups.timepad.ru/event/2315901/
Ребята из отдела разработки питерского провайдера SkyNet очень расстроились, что на стриме к выходу PHP 8.2 никто не отчитался о ситуации в их городе, и решили организовать свой митап. Ну а я рад помочь с распространением информации о такой замечательной инициативе!
Итак, первый митап состоится вечером 16-го февраля в офисе SkyNet на Репишева, 20.
Предусмотрено два доклада:
• PHP-схема взаимодействия с frontend-ом с типами и валидацией (Дмитрий Юдин, SkyNet).
• Твоё выступление, пыхарь! Предлагай тему в личку Павлу @lukazavr.
https://skynet-meetups.timepad.ru/event/2315901/
skynet-meetups.timepad.ru
Контракт на хорошую жизнь: о болях и радостях PHP-разработки / События на TimePad.ru
SkyNet проводит митап для петербургских PHP-разработчиков
🧑🎓 Первая лекция от Пыха: Что такое контракт и как его тестировать?
Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей.
Мне хочется помочь, но консультацию каждому не проведёшь, а судьба курса по PHP пока неизвестна, поэтому я решил записать несколько платных обучающих видео для всех.
Итак, встречайте первую лекцию про контракты и контрактные тесты! 1000 рублей, 15 минут, 0% воды. С нетерпением жду ваших комментариев!
https://boosty.to/phpyh/posts/483bbfbe-0924-4e97-b833-da108935121e
Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей.
Мне хочется помочь, но консультацию каждому не проведёшь, а судьба курса по PHP пока неизвестна, поэтому я решил записать несколько платных обучающих видео для всех.
Итак, встречайте первую лекцию про контракты и контрактные тесты! 1000 рублей, 15 минут, 0% воды. С нетерпением жду ваших комментариев!
https://boosty.to/phpyh/posts/483bbfbe-0924-4e97-b833-da108935121e
Пых
🧑🎓 Первая лекция от Пыха: Что такое контракт и как его тестировать? Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей. Мне хочется помочь, но консультацию каждому не…
Я прислушался к вашим комментариям и переосмыслил свой Boosty.
Вместо платных постов теперь 3 уровня подписки:
• scalar за 200 руб./мес. — поддержка бесплатного контента на каналах Пых, PHP Point и PHP Умирает?!,
• array за 1000 руб./мес. — доступ ко всем лекциям (планирую закидывать по 2-3 в месяц),
• object за 3500 руб./мес. — доступ к лекциям + часовая персональная консультация с возможностью записи.
Всем, кто вчера храбро оплатил первую лекцию, я выдам бесплатный доступ к array на первый месяц. Пожалуйста, свяжитесь со мной, чтобы я скинул ссылку на "подарок".
Остальных приглашаю на обновлённую страницу: https://boosty.to/phpyh!
Вместо платных постов теперь 3 уровня подписки:
• scalar за 200 руб./мес. — поддержка бесплатного контента на каналах Пых, PHP Point и PHP Умирает?!,
• array за 1000 руб./мес. — доступ ко всем лекциям (планирую закидывать по 2-3 в месяц),
• object за 3500 руб./мес. — доступ к лекциям + часовая персональная консультация с возможностью записи.
Всем, кто вчера храбро оплатил первую лекцию, я выдам бесплатный доступ к array на первый месяц. Пожалуйста, свяжитесь со мной, чтобы я скинул ссылку на "подарок".
Остальных приглашаю на обновлённую страницу: https://boosty.to/phpyh!
boosty.to
Пых Boosted - Эксклюзивный контент для подписчиков канала Пых
Привет, Пыхарь! На этой страничке ты можешь поддержать Валентина Удальцова, автора каналов Пых , PHP Point и PHP Умирает?! Если выберешь подписку array или object, тебе станут доступны лекции ! Бесплатная лекция-пробник про Middleware ждёт тебя…
PHP-линч #7
Жду вас сегодня в
https://youtu.be/Gp9GbugpEWc
Жду вас сегодня в
18:00
на линче! В начале расскажу одну интересную новость. 😉https://youtu.be/Gp9GbugpEWc
YouTube
PHP-линч #7 • Новая работа • Ответы на вопросы • markrogoyski/itertools-php • nikic/iter
0:00 Вступление, впервые без эхо!
1:30 Про новую работу
3:26 Про Boosty (https://boosty.to/phpyh) и контент-план
13:39 Количественные метрики качества кода в Happy Inc.
16:54 На чём я работаю
17:54 RPC или REST?
21:16 markrogoyski/itertools-php
34:20 Финалить…
1:30 Про новую работу
3:26 Про Boosty (https://boosty.to/phpyh) и контент-план
13:39 Количественные метрики качества кода в Happy Inc.
16:54 На чём я работаю
17:54 RPC или REST?
21:16 markrogoyski/itertools-php
34:20 Финалить…
Размещение кэшей dev-инструментов в самом проекте — хорошо или плохо?
В последнее время мне нравится собирать все артефакты запуска dev-инструментов в загитигноренную папку
Вот несколько идей со ссылками на конфиги:
• кэш PHP CS Fixer (по умолчанию
• кэш PHPUnit (по умолчанию
• кэш Psalm (по умолчанию папка весом в несколько мегабайт лежит либо в
• кэш PHPStan (аналогично, лежит в
Однако в случае Psalm и PHPStan есть и минусы:
• теперь за кэш отвечаете вы сами, операционная система его не почистит,
• если делаете бэкапы, в них попадёт бесполезная информация.
Пишите в комментариях, что думаете по поводу такого подхода.
В последнее время мне нравится собирать все артефакты запуска dev-инструментов в загитигноренную папку
var
в корне проекта. При таком подходе "мусор" не растекается по всей файловой системе и появляется возможность "вынести" его одной командой rm -rf ./var/
(можно оформить как скрипт Composer или Makefile, чтобы не ошибиться). Кроме того, разгружается корень проекта от ненужных файлов.Вот несколько идей со ссылками на конфиги:
• кэш PHP CS Fixer (по умолчанию
.php-cs-fixer.cache
лежит в корне проекта),• кэш PHPUnit (по умолчанию
.phpunit.result.cache
лежит в корне проекта),• кэш Psalm (по умолчанию папка весом в несколько мегабайт лежит либо в
$XDG_CACHE_HOME
, либо в $HOME
, либо в sys_get_temp_dir
),• кэш PHPStan (аналогично, лежит в
sys_get_temp_dir
).Однако в случае Psalm и PHPStan есть и минусы:
• теперь за кэш отвечаете вы сами, операционная система его не почистит,
• если делаете бэкапы, в них попадёт бесполезная информация.
Пишите в комментариях, что думаете по поводу такого подхода.
Пыхарь, тебе был бы интересен транспилируемый в PHP язык с функционалом Psalm/PHPStan и поддержкой IDE?
Anonymous Poll
49%
Да
51%
Нет
👨🔬 Лекция от Пыха. Как переиспользовать то, для чего не предусмотрено переиспользование?
Пока готовил новую лекцию для Boosty, придумал ещё одну. Название снова загадочное, но ничего не могу с собой поделать...
https://boosty.to/phpyh/posts/fc068aa4-c4e9-4c97-bc6e-3b4e31259a68
Пока готовил новую лекцию для Boosty, придумал ещё одну. Название снова загадочное, но ничего не могу с собой поделать...
https://boosty.to/phpyh/posts/fc068aa4-c4e9-4c97-bc6e-3b4e31259a68
🎧 Самописные инфраструктурные компоненты
На подкасте Пятиминутка PHP вышла наша третья (!) встреча с Петром Мязиным. Очень приятно вспомнить, что Пётр — первый человек, который вытащил меня в медийное пространство PHP в мохнатом 2019-ом году (Symfony Hackathon в Брюсселе глазами очевидца).💙
В этом выпуске я, по сути, подвожу черту под инфраструктурной частью моей работы в Happy Inc. Рассказываю, как и на кой чёрт мы написали три крупных компонента: Thesis, Hydrator и Message Bus. А ещё в выпуске есть немного про Message Driven Architecture, паттерн Outbox и принятиестранных решений.
Всем приятного вечера и прослушивания: https://5minphp.ru/episode99/.
На подкасте Пятиминутка PHP вышла наша третья (!) встреча с Петром Мязиным. Очень приятно вспомнить, что Пётр — первый человек, который вытащил меня в медийное пространство PHP в мохнатом 2019-ом году (Symfony Hackathon в Брюсселе глазами очевидца).
В этом выпуске я, по сути, подвожу черту под инфраструктурной частью моей работы в Happy Inc. Рассказываю, как и на кой чёрт мы написали три крупных компонента: Thesis, Hydrator и Message Bus. А ещё в выпуске есть немного про Message Driven Architecture, паттерн Outbox и принятие
Всем приятного вечера и прослушивания: https://5minphp.ru/episode99/.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пятиминутка PHP
Самописные инфраструктурные компоненты
Тема этого выпуска: самописные инфраструктурные компоненты – зачем они нужны и чем не угодили Open Source аналоги, помимо фатального недостатка? Отвечает Валентин Удальцов – автор телеграм канала П…
Пыхарь, важнейший вопрос во вселенной! Какой порядок ключевых слов при объявлении класса в PHP 8.2 ты считаешь наиболее логичным?
Anonymous Poll
81%
final readonly class
19%
readonly final class
Пых
Пыхарь, важнейший вопрос во вселенной! Какой порядок ключевых слов при объявлении класса в PHP 8.2 ты считаешь наиболее логичным?
Оказывается, уточнение по этому вопросу дожидается своего релиза в мастере PER coding style. В соответствии с рекомендацией правильный вариант — первый.
Спасибо @samdark.
Спасибо @samdark.
GitHub
per-coding-style/spec.md at master · php-fig/per-coding-style
PER coding style. Contribute to php-fig/per-coding-style development by creating an account on GitHub.
Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew
28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим руководством выполнят несколько познавательных заданийи на следующий день смогут перейти на Kotlin или Haskell.
Короче, пыхарь, если ты практикуешь статанализ, готов пообщаться в онлайне и не занят через две недели во вторник вечером, пиши мне в личку @vudaltsov. Чтобы проверить свои знания, реши задачку https://psalm.dev/r/e7e74a61cf.
Ах, да, те, кого я отберу, получат бесплатные билеты на Podlodkа PHP Crew!
————————————
PHP-линч #8 будет в четверг в 18:00.
28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим руководством выполнят несколько познавательных заданий
Короче, пыхарь, если ты практикуешь статанализ, готов пообщаться в онлайне и не занят через две недели во вторник вечером, пиши мне в личку @vudaltsov. Чтобы проверить свои знания, реши задачку https://psalm.dev/r/e7e74a61cf.
Ах, да, те, кого я отберу, получат бесплатные билеты на Podlodkа PHP Crew!
————————————
PHP-линч #8 будет в четверг в 18:00.
Пых
Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew 28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим…
Спасибо всем откликнувшимся, мне было очень приятно связаться с каждым! К сожалению, пришлось выбирать, так как по сценарию нужно 2 участника. Но что-то мне подсказывает, что это не последняя движуха такого рода. 😉
Правильное решение задачи: https://psalm.dev/r/064023dcb7.
И всех ещё раз приглашаю на Podlodkа PHP Crew, в частности на мой воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики" 28-ого в 19:00.
Правильное решение задачи: https://psalm.dev/r/064023dcb7.
И всех ещё раз приглашаю на Podlodkа PHP Crew, в частности на мой воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики" 28-ого в 19:00.
podlodka.io
Онлайн-конференция Podlodka PHP Crew, сезон #7
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным вопросам PHP-индустрии, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Не игнорьте .idea в репозитории
(Реинкарнация старого доброго поста)
Я считаю, что на проекте не должно быть строгой фиксации на IDE. Каждый может кодить в чём хочет. Главное, чтобы в итоге код был причёсан в согласованном командой стиле. И для этого нужны не git-хуки и не расшаренные конфиги IDE, а CI с проверкой на Code Style. Тогда можно хоть с телефона в браузере левой ногой правки вносить — вмерджить неправильный код в мастер всё равно не получится.
А теперь мысленно доведём ситуацию до абсурда, чтобы выявить проблему. Представим, что каждый из 100 разработчиков проекта решил использовать свою кастомную IDE с уникальными временными файлами и предложил по одному PR в каждый из 100 микросервисов на изменение .gitignore. Поздравляю, у нас 10_000 PR!😮
Вывод: код должен быть IDE-агностик, то есть не зависеть от среды разработки!
И это элементарно достигается настройкой глобального
Добавьте всего лишь две команды в ваш чек-лист для онбоардинга:
—————————
PHP-линч #9 сегодня в 19:00.
(Реинкарнация старого доброго поста)
Я считаю, что на проекте не должно быть строгой фиксации на IDE. Каждый может кодить в чём хочет. Главное, чтобы в итоге код был причёсан в согласованном командой стиле. И для этого нужны не git-хуки и не расшаренные конфиги IDE, а CI с проверкой на Code Style. Тогда можно хоть с телефона в браузере левой ногой правки вносить — вмерджить неправильный код в мастер всё равно не получится.
А теперь мысленно доведём ситуацию до абсурда, чтобы выявить проблему. Представим, что каждый из 100 разработчиков проекта решил использовать свою кастомную IDE с уникальными временными файлами и предложил по одному PR в каждый из 100 микросервисов на изменение .gitignore. Поздравляю, у нас 10_000 PR!
Вывод: код должен быть IDE-агностик, то есть не зависеть от среды разработки!
И это элементарно достигается настройкой глобального
.gitignore
на машине разработчика. Каждый прописывает себе те исключения, которые необходимы для его ОС, IDE и прочих инструментов, а затем спокойно открывает абсолютно любой проект, не боясь закоммитить лишнее.Добавьте всего лишь две команды в ваш чек-лист для онбоардинга:
git config --global core.excludesfile ~/.gitignore
echo '.idea/' >> ~/.gitignore
—————————
PHP-линч #9 сегодня в 19:00.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from PHP умирает?!
Конкурс от канала PHP умирает?!
До 1-ого марта скинь в личку @vudaltsov идею для озвучки сцены из фильма или сериала.
Условия:
• сцена должна быть короткой (не дольше 30 секунд),
• предлагаемый вариант озвучки должен быть связан с PHP,
• преимущество получат самые смешные варианты, которые не выставляют PHP в плохом свете (по крайней мере, явно).
Примеры:
• https://www.tg-me.com/isPHPdying/19,
• https://www.tg-me.com/isPHPdying/26,
• https://www.tg-me.com/isPHPdying/124,
• https://www.tg-me.com/isPHPdying/125.
Что присылать:
• фрагмент фильма или сериала или ссылку на него с тайм-кодом,
• текст альтернативной озвучки,
• можно несколько вариантов.
Призы:
🥇 месяц подписки object на Пых Boosted,
🥈 месяц подписки array на Пых Boosted,
🥉 месяц подписки array на Пых Boosted.
Все три ролика будут обязательно озвучены и выложены на канале после подведения итогов. С нетерпением ждём ваших идей!
До 1-ого марта скинь в личку @vudaltsov идею для озвучки сцены из фильма или сериала.
Условия:
• сцена должна быть короткой (не дольше 30 секунд),
• предлагаемый вариант озвучки должен быть связан с PHP,
• преимущество получат самые смешные варианты, которые не выставляют PHP в плохом свете (по крайней мере, явно).
Примеры:
• https://www.tg-me.com/isPHPdying/19,
• https://www.tg-me.com/isPHPdying/26,
• https://www.tg-me.com/isPHPdying/124,
• https://www.tg-me.com/isPHPdying/125.
Что присылать:
• фрагмент фильма или сериала или ссылку на него с тайм-кодом,
• текст альтернативной озвучки,
• можно несколько вариантов.
Призы:
🥇 месяц подписки object на Пых Boosted,
🥈 месяц подписки array на Пых Boosted,
🥉 месяц подписки array на Пых Boosted.
Все три ролика будут обязательно озвучены и выложены на канале после подведения итогов. С нетерпением ждём ваших идей!
function phpyh(array &$value): void
{
$value = 1;
}
$value = [];
phpyh($value);
var_dump($value);
🎲 Разыгрываю билет на Podlodka PHP Crew!
Как вы уже знаете, ранее я отобрал двух участников воркшопа по статанализу на Podlodka PHP Crew, и сегодня вечером в 19:00 мы с Алесем и Андреем обмажемся типами по-полной, уж поверьте мне. Но внезапно я вспомнил, что у меня есть дополнительная проходка на конфу, и решил её разыграть!
Билет на Подлодку получит тот, кто первым правильно решит задачку: https://psalm.dev/r/ed78fa67f7. Там нужно поправить все ошибки одним изменением, не прибегая к
Исправленный сниппет присылайте в личку так же ссылкой на psalm.dev. Решение задачи разберём завтра на PHP-линче в 21:00 (проведём после Подлодки).
Как вы уже знаете, ранее я отобрал двух участников воркшопа по статанализу на Podlodka PHP Crew, и сегодня вечером в 19:00 мы с Алесем и Андреем обмажемся типами по-полной, уж поверьте мне. Но внезапно я вспомнил, что у меня есть дополнительная проходка на конфу, и решил её разыграть!
Билет на Подлодку получит тот, кто первым правильно решит задачку: https://psalm.dev/r/ed78fa67f7. Там нужно поправить все ошибки одним изменением, не прибегая к
@psalm-suppress
.Исправленный сниппет присылайте в личку так же ссылкой на psalm.dev. Решение задачи разберём завтра на PHP-линче в 21:00 (проведём после Подлодки).