Пых
8.27K subscribers
262 photos
14 videos
6 files
569 links
Блог Валентина Удальцова о разработке на PHP.

Хобот @phpyhobot
https://youtube.com/@phpyh
https://vkvideo.ru/@phpyh
https://t.me/isPHPdying

Статистика: https://t.me/INOTAROBOT?start=st1219340804

Для связи используйте личные сообщения канала.
Download Telegram
Пых
Регистрация на Пыхап 8 ноября https://phpyh.timepad.ru/event/3071538/ Все 50 билетов разлетелись за 15 минут, очень приятно!
Пыхап уже в эту пятницу!

Друзья, подготовка к митапу идёт полным ходом! Отслушаны доклады, протестирована трансляция с площадки и забронирован Грузинский ресторан Мзиани для афтерпати. Наверняка в итоге что-то пойдёт не так, но я уверен — даже если выключится свет, мы всё равно отлично проведём время и узнаем кучу нового (см. программу). 😆

Одна маленькая просьба к тем, кто придёт офлайн. Если вы вдруг передумаете, напишите мне до пятницы — я передам ваш билет другим желающим. 😊

До скорой встречи в лофте «Событие» и на канале PHP Point!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍73
defer в PHP

В Go есть инструкция defer. Она откладывает выполнение операции на момент после возврата текущей функции:


func main() {
defer fmt.Println("world!")

fmt.Print("Hello ")
}


В PHP мы элементарно добьёмся того же эффекта, если присвоим переменной объект с требуемым кодом в деструкторе. После выполнения скрипта/функции/метода при высвобождении объекта из памяти PHP вызовет этот деструктор:


$defer = new class {
public function __destruct()
{
echo 'world!', PHP_EOL;
}
};

echo 'Hello ';


Каждый раз писать такую колбасу неудобно. Также может потребоваться запланировать несколько defer. Поэтому мы берём на вооружение библиотечку php-defer/php-defer, которая в стиле node_modules предоставляет нам соответствующую функцию:


defer($_, static function (): void {
echo 'rld!', PHP_EOL;
});

defer($_, static function (): void {
echo ', wo';
});

echo 'Hello';


Главный вопрос: зачем это нужно, когда есть finally? Удобство defer состоит в том, что его можно использовать в требуемом месте, не реорганизуя код. Прилагаю скриншот рефакторинга TyphoonReflectorMemoryTest — там всё очень наглядно. Кстати, этот тест я уже упоминал в посте Тест на циклические ссылки.

Cпасибо @Danil42Russia за знакомство с php-defer.

В Laravel тоже есть такая функция, но её не получится использовать вне фреймфорка, спасибо @YourKey и @kafkianskiy.
👍43🔥12👎841
Open Source Цех #2. Поддержка PHP 8.4 в Symfony PropertyInfo

Сегодня вечером поработаю над своим тикетом в Symfony, который я недавно создал в поддержку письма "Asymmetric visibility is a BC break". Приходите помогать в 19:00 на канал PHP Point. Особенно интересно будет тем, кто ещё не пробовал ассиметричную видимость и виртуальные свойства в PHP 8.4.

https://youtu.be/LjJtb-kFYZg
👍12🔥8
Пых
Пыхап уже в эту пятницу! Друзья, подготовка к митапу идёт полным ходом! Отслушаны доклады, протестирована трансляция с площадки и забронирован Грузинский ресторан Мзиани для афтерпати. Наверняка в итоге что-то пойдёт не так, но я уверен — даже если выключится…
Пыхап × Happy Job

Пыхап уже завтра, а сегодня я ещё раз хочу поблагодарить Happy Job 💚 за спонсорство. Это далеко не первый наш совместный проект за последние два года. Очень рад, что мы продолжаем тесно общаться на совершенно другом уровне. Пишите в комментариях, у кого были похожие истории.

HR-ы (вы ведь тоже подписаны на Пых?), вам наверняка будет интересен канал @happyjobru в Telegram. Там коллеги периодически проводят бесплатные вебинары и рассказывают про вовлечённость, work-life balance и счастье на работе. Подписывайтесь!

Кстати, накануне я добавил ещё 10 посадочных мест. Почти все раздал, осталось 2 билета, забирайте на странице регистрации!
👍13🔥105
Пых
Пыхап × Happy Job Пыхап уже завтра, а сегодня я ещё раз хочу поблагодарить Happy Job 💚 за спонсорство. Это далеко не первый наш совместный проект за последние два года. Очень рад, что мы продолжаем тесно общаться на совершенно другом уровне. Пишите в комментариях…
🏡 Офлайн Пыхап

Дорогие гости, через два часа, в 18:30, мы будем ждать вас в уютном лофте «Событие» по адресу Москва, Николоямская улица, 28.

Безумно приятно, что некоторые специально приехали издалека, чтобы вживую запустить Пыхап!

О начале онлайн-трансляции я дополнительно объявлю ближе к 19:00.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3513👍8
Пых
🏡 Офлайн Пыхап Дорогие гости, через два часа, в 18:30, мы будем ждать вас в уютном лофте «Событие» по адресу Москва, Николоямская улица, 28. Безумно приятно, что некоторые специально приехали издалека, чтобы вживую запустить Пыхап! О начале онлайн-трансляции…
▶️ Пыхап!

Буквально через несколько минут начнётся первый в истории Пыхап! Залетайте в трансляцию на канале PHP Point!

https://youtu.be/Pa4pti6r-rc

В программе у нас 3 доклада:

🤯 (Не) используйте функциональное программирование в PHP
Андрей Клименко поломает вам голову основами ФП и примерами на Scala, из которых станет понятно, что из функционального мира уже доступно в PHP, а что ещё предстоит законтрибьютить.
⬇️Слайды

🐇 Вы не знаете RabbitMQ
Вадим Занфир расскажет, почему все современные фреймворки теряют сообщения и как на самом деле надо работать с "кроликом".
⬇️Слайды

🤑 Как считать деньги и не терять их
В аду есть специальный котёл для тех, кто использует float для хранения денег. Сергей Жук подскажет, как в него не угодить.
⬇️Слайды

Спонсор первого Пыхапа — Happy Job 💚! Обращайтесь в Happy Job за исследованиями вовлечённости и оценкой 360, ребята делают лучшую платформу для развития сотрудников.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34👍125👎2
Дизайн php.net освежили. Нравится!
🔥77👍27🤩8😁5👎2
Forwarded from Andrew Klimenko
https://wiki.php.net/rfc/function-composition

Заспавнилось на следующий день после доклада. Это квантовая запутанность?
👍18😁12😱11🔥5
Forwarded from PHP Fart Time (Алексей roxblnfk)
👍25🔥135💩3👎2🤝2
🎉 PHP 8.4!

https://www.php.net/releases/8.4/ru.php

Для меня это особенный релиз, потому что я в нём поучаствовал. Спасибо Максиму Махнюку из Ruvents, который заложил в мою голову идею для RFC аж 6 лет назад! Тогда он между делом задал риторический вопрос:

Почему в PHP нельзя писать, как в Java: new MyClass().method()?


Сейчас многие из вас горячо обсуждают, надо ли ставить скобки или нет. Друзья, пишите код так, как вы решили в вашей команде. Нет ничего лучше единообразия в стиле кодирования, подкреплённого джобой в CI. Именно поэтому мой пока ещё не одобренный Fixer позволяет менять код в обе стороны.

В PHP 8.4 добавили ещё много важных и интересных изменений. Приглашаю вас на традиционный стрим, посвящённый релизу, сегодня в 20:00 по Москве. Обсудим хуки свойств, ассиметричную видимость, новые функции, ленивые объекты и всё, что ещё вспомнится. Спасибо Сергею и Данилу с @CutCode, что приняли эстафету у Алисы.

https://youtu.be/UgNAvNmAizk
Please open Telegram to view this post
VIEW IN TELEGRAM
6🎉58🔥2812👍6💯2
🔫 Иду в гости к Кошачьей Бацыле!

https://youtu.be/9n985wI0z3c

Иван, автор канала, недавно предложил мне вместе постримить. Оказалось, что он пишет на PHP и частенько упоминает его в своих роликах про пресловутое IT. Очевидно, нам есть, о чём поговорить, поэтому я сразу согласился. Залетайте сегодня в 18:00 на уютный пятничный стрим, будем знакомиться!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44👍18🤮94😱1
Forwarded from PHP Russia Channel
⚡️На момент проведения конференции выйдет долгожданный PHP 8.4 - важнейшее событие для разработчиков. Много новых фич и функций, разобраться в которых будет полезно всем, кому интересен PHP. Об этом расскажут в секции “Новые крутые либы”, представленной на PHP Russia 2024.

Одного выступления для этого мало, но Валентин Удальцов (Typhoon) в cвоем докладе “PHP 8.4: живее всех живых” расставит все основные акценты и расскажет, как поскорее внедрить PHP 8.4 в ваши проекты.

Говорят, что зима близко? Не только зима! Вот-вот выходит легендарный PHP 8.4, набор функционала которого затмевает даже те изменения, что были в PHP 7.4. А значит, самое время вооружиться знаниями о новой версии языка, дабы вся феерия новых возможностей не застала врасплох!

📌 До встречи на PHP Russia 2024, которая пройдет 2 и 3 декабря в рамках HighLoad++ 2024.

📎 Онлайн-билеты, расписание и программу можно найти на сайте
🔥26👍17👏5🗿1
PHP Russia 2024

Конфа в самом разгаре! Оба дня до обеда веду зал, а завтра вечером рассказываю про PHP 8.4. Наведу фокус на важные фичи, которым уделили недостаточно внимания.

Кто тут, приходите в зал Кейптаун, буду рад поболтать.
🔥97👍269
Вопросы для интервью с Иоаннисом Лукерисом

Вчера был крутой доклад от грека Иоанниса Лукериса про APCu. Прикол в том, что Иоаннис — единственный зарубежный спикер на весь Highload++. Очень приятно, что привезла его Катя Фирсова из программного комитета PHP Russia.

Я хочу воспользоваться ситуацией и через полчаса взять у него интервью. Напишите вопросы, на которые вы бы хотели получить ответы.
👍42🔥163🤡2👌1
Пых
Ловите превью.
Иоаннис Лукерис про PHP vs Go, Yii 3 и русских разработчиков

Иоаннис — архитектор в Altenar. На прошедшей PHP Russia он рассказывал, как и в каких случаях использовать APCu. На меня произвели большое впечатление его харизма, выдержка и рассудительность, и я сразу понял, что без интервью этого человека отпускать нельзя.

https://youtu.be/rycC75QpIPY

Спасибо Екатерине Фирсовой за гостя, а вам, пыхари, за крутые вопросы.
🔥39👍1612
Open Source Цех #3. Symfony PropertyInfo, Symfony Console, PHPUnit

В эту среду в 19:00 посмотрим, как Nicolas Grekas поправил совместимость Symfony PropertyInfo с PHP 8.4, и предложим пару маленьких изменений в Symfony Console и PHPUnit.

https://youtu.be/z19oWnc4WMU
🔥23👍143
Composer bump-after-update

В Composer 2.8 появилась полезная автоматизация для bump:

# раньше
composer update && composer bump
# теперь
composer update --bump-after-update

# раньше
composer update && composer bump --dev-only
# теперь
composer update --bump-after-update=dev


Или один раз прописываем в composer.json:

{
"config": {
"bump-after-update": true|"dev"|"no-dev"
}
}


В проекте рекомендую использовать true (бампим всё), в библиотеке — "dev" (бампим только dev зависимости), так как диапазоны основных зависимостей библиотеки определяются осознанно в соответствии со стратегией совместимости.

Кто не в курсе, команда composer bump появилась в Composer 2.4. Она поднимает нижние границы констрейнтов в composer.json до зафиксированных в composer.lock, например:

{
"require": {
- "typhoon/reflection": "^0.4"
+ "typhoon/reflection": "^0.4.4"
}
}
👍45🔥27🤔6
Пых
Open Source Цех #3. Symfony PropertyInfo, Symfony Console, PHPUnit В эту среду в 19:00 посмотрим, как Nicolas Grekas поправил совместимость Symfony PropertyInfo с PHP 8.4, и предложим пару маленьких изменений в Symfony Console и PHPUnit. https://youtu.be/z19oWnc4WMU
Вчерашний Open Source Цех пошёл на пользу PHP сообществу!

https://youtu.be/z19oWnc4WMU

▸ Sebastian Bergmann закрыл мой тикет про mixed ключи в assertArrayHasXXX() как фикс. Это означает, что изменения будут доступны в патч-апдейтах 10 и 11 версий PHPUnit.

▸ Robin Chalas из команды Symfony согласился, что команда bin/console debug:container <service> должна по умолчанию выводить информацию об аргументах сервиса. Обсуждаем дальше, будет ли изменение вывода нарушением BC или нет. Законтрибьютим с вами решение на следующем стриме Цеха.

▸ По PropertyAccess пока нет обратной связи. Но я уверен, что Nicolas Grekas уже работает над исправлением.
🔥44👍20
Оверимплоймент

NEWHR проводят исследование оверимплоймента — это когда подрабатываешь или устраиваешься на несколько полноценных работ, чтобы, например, пораньше закрыть ипотеку или просто потому что можешь и нагрузка позволяет.

Расскажу про свой "жопыт". Я обычно на 100% погружаюсь в основной проект — остаюсь вечером, чтобы в тишине додумать сложную задачу, или прихожу в выходные бороться с техдолгом. Если проект меня так не драйвит, я меняю работу. Поэтому мне трудно представить, что я пишу код где-то ещё. Тем не менее, два раза пришлось согласиться. В процессе выяснялось, что код кошмарный, а от меня требуется изобразить подход "хуяк-хуяк, и в продакшн". В итоге я зарёкся вписываться в подработки и стал искать другие способы зарабатывать больше.

Очевидно, что работать на двух фулл-таймах мне даже в голову не приходило. Я с круглыми глазами читаю статьи коллег, которые по приколу залетают на 5 работ джунами или на 2-3 сеньорами. С одной стороны, у них крутая самоорганизация, с другой — я не разделяю такой подход к программированию. Пишите в комментариях, пробовали ли вы так делать и чем это закончилось. Ну и заодно давайте поможем NEWHR с их исследованием. В начале года они по результатам опроса сделают лендинг.

https://survey.alchemer.com/s3/7949610/newhr-overemployment-2024
👍22😱15💯21