Telegram Web Link
🧑‍🎓 Первая лекция от Пыха: Что такое контракт и как его тестировать?

Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей.

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

Итак, встречайте первую лекцию про контракты и контрактные тесты! 1000 рублей, 15 минут, 0% воды. С нетерпением жду ваших комментариев!

https://boosty.to/phpyh/posts/483bbfbe-0924-4e97-b833-da108935121e
19😢16👍9👎7💩6🔥3🤩1
Пых
🧑‍🎓 Первая лекция от Пыха: Что такое контракт и как его тестировать? Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей. Мне хочется помочь, но консультацию каждому не…
Я прислушался к вашим комментариям и переосмыслил свой Boosty.

Вместо платных постов теперь 3 уровня подписки:
• scalar за 200 руб./мес. — поддержка бесплатного контента на каналах Пых, PHP Point и PHP Умирает?!,
• array за 1000 руб./мес. — доступ ко всем лекциям (планирую закидывать по 2-3 в месяц),
• object за 3500 руб./мес. — доступ к лекциям + часовая персональная консультация с возможностью записи.

Всем, кто вчера храбро оплатил первую лекцию, я выдам бесплатный доступ к array на первый месяц. Пожалуйста, свяжитесь со мной, чтобы я скинул ссылку на "подарок".

Остальных приглашаю на обновлённую страницу: https://boosty.to/phpyh!
👍45💩229🔥9
Размещение кэшей dev-инструментов в самом проекте — хорошо или плохо?

В последнее время мне нравится собирать все артефакты запуска 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 есть и минусы:
• теперь за кэш отвечаете вы сами, операционная система его не почистит,
• если делаете бэкапы, в них попадёт бесполезная информация.

Пишите в комментариях, что думаете по поводу такого подхода.
👍24🔥8🤨3
Пыхарь, тебе был бы интересен транспилируемый в PHP язык с функционалом Psalm/PHPStan и поддержкой IDE?
Anonymous Poll
49%
Да
51%
Нет
🤔45👍6👎4🤡2
👨‍🔬 Лекция от Пыха. Как переиспользовать то, для чего не предусмотрено переиспользование?

Пока готовил новую лекцию для Boosty, придумал ещё одну. Название снова загадочное, но ничего не могу с собой поделать...

https://boosty.to/phpyh/posts/fc068aa4-c4e9-4c97-bc6e-3b4e31259a68
👍23👎10🔥6😁2😱2😭1
🎧 Самописные инфраструктурные компоненты

На подкасте Пятиминутка 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
🔥24👍8
Пыхарь, важнейший вопрос во вселенной! Какой порядок ключевых слов при объявлении класса в PHP 8.2 ты считаешь наиболее логичным?
Anonymous Poll
81%
final readonly class
19%
readonly final class
🤣19👎4🔥3😁1
Пых
Пыхарь, важнейший вопрос во вселенной! Какой порядок ключевых слов при объявлении класса в PHP 8.2 ты считаешь наиболее логичным?
Оказывается, уточнение по этому вопросу дожидается своего релиза в мастере PER coding style. В соответствии с рекомендацией правильный вариант — первый.

Спасибо @samdark.
👍372
Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew

28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим руководством выполнят несколько познавательных заданий и на следующий день смогут перейти на Kotlin или Haskell.

Короче, пыхарь, если ты практикуешь статанализ, готов пообщаться в онлайне и не занят через две недели во вторник вечером, пиши мне в личку @vudaltsov. Чтобы проверить свои знания, реши задачку https://psalm.dev/r/e7e74a61cf.

Ах, да, те, кого я отберу, получат бесплатные билеты на Podlodkа PHP Crew!

————————————
PHP-линч #8 будет в четверг в 18:00.
14👍10🔥10
Пых
Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew 28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим…
Спасибо всем откликнувшимся, мне было очень приятно связаться с каждым! К сожалению, пришлось выбирать, так как по сценарию нужно 2 участника. Но что-то мне подсказывает, что это не последняя движуха такого рода. 😉

Правильное решение задачи: https://psalm.dev/r/064023dcb7.

И всех ещё раз приглашаю на Podlodkа PHP Crew, в частности на мой воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики" 28-ого в 19:00.
👍21
Не игнорьте .idea в репозитории
(Реинкарнация старого доброго поста)

Я считаю, что на проекте не должно быть строгой фиксации на 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
👍80💩214
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.

Все три ролика будут обязательно озвучены и выложены на канале после подведения итогов. С нетерпением ждём ваших идей!
🔥6👍41
function phpyh(array &$value): void
{
$value = 1;
}

$value = [];
phpyh($value);

var_dump($value);
👍9
🎲 Разыгрываю билет на Podlodka PHP Crew!

Как вы уже знаете, ранее я отобрал двух участников воркшопа по статанализу на Podlodka PHP Crew, и сегодня вечером в 19:00 мы с Алесем и Андреем обмажемся типами по-полной, уж поверьте мне. Но внезапно я вспомнил, что у меня есть дополнительная проходка на конфу, и решил её разыграть!

Билет на Подлодку получит тот, кто первым правильно решит задачку: https://psalm.dev/r/ed78fa67f7. Там нужно поправить все ошибки одним изменением, не прибегая к @psalm-suppress.

Исправленный сниппет присылайте в личку так же ссылкой на psalm.dev. Решение задачи разберём завтра на PHP-линче в 21:00 (проведём после Подлодки).
👍12🔥6🤮3
PHP Extended Type System v0.1.0

Пыхари, сегодня мы наконец-то увидим, как я на чём-то ставлю тег, пусть и 0.1.0!

Встречаемся через час на уютном PHP Point!

https://youtu.be/5c0WdgAnH_k
🔥32👍12🤩2
2025/07/08 23:34:40
Back to Top
HTML Embed Code: