TGViewer
Channel Public Channel
Пых

Пых

@phpyh

Блог Валентина Удальцова о разработке на PHP.

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

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

Для связи используйте личные сообщения канала.
Subscribers
7.83K
Photos
287
Videos
20
Links
629

Showing posts older than #667 · Back to latest

Older Posts 16 shown
Post #666 8.28K
Пых PHP RFC: Marking return values as important (#[\NoDiscard]) За internals не успеть в последнее время! Вот уже на голосование вышел RFC от Tim Düsterhus и Volker Dusch. Они предлагают добавить в PHP атрибут #[NoDiscard] — им можно будет пометить функции и…
Что я сам думаю по этому поводу?

Имхо, это такой же бесполезный атрибут, как и #[Override]. Никакого спроса лично у меня на эту фичу нет. Наверное, потому, что мои функции либо не мутируют стейт, либо возвращают void. Ну а к особенностям нативного апи я давно привык.

По сути, это очередная проблема, которая должна решаться статическим анализом, а не рантаймом.
  • 👍 49
  • 💯 10
  • 🔥 4
  • 👎 2
Post #665 8.01K
PHP RFC: Marking return values as important (#[\NoDiscard])

За internals не успеть в последнее время! Вот уже на голосование вышел RFC от Tim Düsterhus и Volker Dusch. Они предлагают добавить в PHP атрибут #[NoDiscard] — им можно будет пометить функции и методы, возвращаемое значение которых не стоит игнорировать. Например, вот такой код будет кидать E_WARNING, если RFC примут:


$date = new DateTimeImmutable('2024-1-1');
$date->setDate(2025, 1, 1); // E_WARNING

echo $date->format('Y'); // 2024


Возвращаемое значение считается использованным, если оно участвует в выражении или присваивании. Чтобы избежать предупреждения и явно в коде обозначить намерение не использовать результат вызова функции с #[NoDiscard], авторы RFC предлагают добавить (void) каст. Он превратит выражение в инструкцию:


flock($stream, LOCK_EX); // E_WARNING

(void) flock($stream, LOCK_EX); // OK

if ((void) flock($stream, LOCK_EX)) {} // Parse error


Использование #[NoDiscard] в функциях и методах, возвращающих void, never, а также в магических методах и хуках свойств приведёт к фатальной ошибке на этапе интерпретации.

По мнению авторов, этот атрибут будет полезен для функций с сайд-эффектами, которые при этом ещё что-то возвращают, например, ошибки.

https://wiki.php.net/rfc/marking_return_value_as_important
  • 👎 75
  • 👍 18
  • 🤔 10
  • 🔥 7
Post #664 9.35K
Пых PHP True Async Только что от Эдмона Дантеса (его реально так зовут?) в internals прилетел вот такой запрос! Пока это просто письмо, но всё равно радостно, что кто-то поднимает флаг и дальше развивает асинк. С нетерпением ждём RFC! https://externals.io/message/126402
PHP True Async

Черновой RFC асинка в PHP от Эдмона Дантеса.

https://wiki.php.net/rfc/true_async
  • 🔥 80
  • 👍 14
  • 🍾 6
Post #660 8.75K
Post #657 8.23K
Post #656 9.04K
Closure в константных выражениях в PHP 8.5

В 8.5 приняты два RFC:
▸ PHP RFC: Support Closures in constant expressions,
▸ PHP RFC: First Class Callables in constant expressions.

Они позволяют использовать анонимные функции и first class callable синтаксис в константных выражениях (значениях параметров по умолчанию, константах, константах класса и атрибутах).

Как всегда в PHP нельзя что-то добавить без "но". В данном случае исключение сделано для стрелочных функций, потому что они автоматически захватывают контекст, а константные выражения не могут содержать переменные.


final class Request
{
#[Validate(is_string(...))]
#[Validate(static function (string $locale): bool {
return preg_match('/^[a-z]{2}$/', $locale);
})]
public mixed $locale = 'ru';
}

final readonly class Checks
{
public const Closure IS_STRING = is_string(...);

public const Closure IS_LOCALE = static function (string $locale): bool {
return preg_match('/^[a-z]{2}$/', $locale);
};
}

final readonly class Worker
{
public function __construct(
private Closure $onFinish = static function (): void {}
) {}

// ...
}
  • 👍 49
  • 🔥 17
  • ❤ 10
  • 👎 2
  • 🥱 1
Post #655 7.4K
Пыхап ищет спонсора!

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

Мы планируем провести третий московский Пыхап уже в апреле. Запланированы крутые доклады, Открытый микрофон и афтепати, не хватает только спонсора!

В обмен на финансирование мероприятия мы рассказываем о компании в анонсах и на мероприятии, интегрируем её айдентику в наши макеты. Мы открыты и для других форматов, например, было бы здорово придумать совместный интерактив для участников.

Пыхари, буду рад, если вы перешлёте этот пост своим HR и поделитесь с ними впечатлениями о прошедших меропритиях. По поводу спонсорства можно писать в личку.

Про первый Пыхап: https://t.me/phpyh/557.
Итоги второго: https://t.me/phpyh/636.
  • 👍 31
  • 🔥 14
  • ❤ 3
  • 🦄 1
Post #653 9.32K
Пых Кодим с джуном на PHP #1 / Евгений Alignant, cпецификации и SQL. Часть 2 Завтра с Женей в 15 мы точно закончим начатое! 😅 https://youtu.be/uj9oidvAlSc https://vkvideo.ru/video-228746873_456239026
Кодим с джуном на PHP #1 / Евгений Alignant, cпецификации и SQL. Часть 2

Мы начинаем! Залетайте!

https://youtu.be/uj9oidvAlSc
https://vkvideo.ru/video-228746873_456239026
YouTube Кодим с джуном на PHP #1 / Евгений Alignant, cпецификации и SQL. Часть 2 Первая часть: https://youtu.be/jukC0Vl-K0I . На этом стриме доделаем начатое! Новый формат на канале Пых! Я приглашаю джуна, даю ему материалы для подготовки, а затем мы встречаемся на стриме, чтобы на базе этих материалов разобрать интересную задачу (джун…
  • 🔥 17
  • 👍 6
  • ❤ 2
Post #650 9.26K
PHP True Async

Только что от Эдмона Дантеса (его реально так зовут?) в internals прилетел вот такой запрос!

Пока это просто письмо, но всё равно радостно, что кто-то поднимает флаг и дальше развивает асинк. С нетерпением ждём RFC!

https://externals.io/message/126402
  • 👍 75
  • 🔥 44
  • ❤ 11
Post #649 7.4K
Post #648 6.95K
Всех люблю! Ваш Валентин. 🎁
  • ❤ 170
  • 😁 72
  • 🤣 22
  • 🔥 12
  • ❤‍🔥 7
  • 😘 5
  • 👎 2
  • 🌚 1
Post #647 7.46K
RFC: Static property asymmetric visibility

Как вы, наверное, знаете, в PHP 8.4 новоиспечённые хуки нельзя использовать для статических свойств. Сегодня стартовало голосование за RFC, который это разрешит в 8.5.


class Example
{
public private(set) static string $classTitle = 'Example class';

// Implicitly public-read, just like object properties.
protected(set) static int $counter = 0;

public static function changeName(string $name): void
{
// From private scope, so this is allowed.
self::$classTitle = $name;
}
}

print Example::$classTitle; // Allowed.

Example::$classTitle = 'Nope'; // Disallowed.


https://wiki.php.net/rfc/static-aviz
  • 🔥 23
  • 👍 15
  • 🤯 13
  • ❤ 7
  • 👻 1
Post #644 6.33K
Обзор PHP RFC #1

Друзья, вместо "Кодим с джуном" сегодня импровизированный стрим — посмотрим новые RFC в PHP! А с Женей встретимся в другой день.

Залетайте!

https://youtu.be/XSVld58EAMI
https://vkvideo.ru/video-228746873_456239025
  • 🔥 13
  • 👍 8
  • 😁 6
  • ❤ 1
  • 🤣 1
Post #636 8.38K
Итоги второго Пыхапа

Митап прошёл просто охуенно. Горжусь всеми, кто его делал и кто в нём участвовал! Получилось технично, душевно и празднично. 😊

Все доклады есть в записи с таймкодами на YouTube и VKВидео.

Открытый микрофон был разрывным. Спасибо ребятам за смелость и интересные мысли. Как и планировалось, мы ничего не записывали, поэтому я просто перечислю темы и героев:
▸ "Трюки и хитрости Docker" (Павел Иванов),
▸ "Как мы Query параметры через LZString готовим" (Максим Шек),
▸ "Как и зачем жить без дейликов" (Арсений Скурт),
▸ "Symbiotic PHP — микрофреймворк для говнокода микросервисов" (Павел Дузов).

Когда следующий Пыхап? Всё зависит от вас, потому что главное — контент. Ждём ваши заявки на доклад!

Также мы всегда рады спонсорам. Спасибо Happy Job и PremiumBonus за поддержку первых двух мероприятий. Если ваша компания хочет стать следующей — напишите мне в личку.

До встречи в офлайне!
  • 🔥 69
  • 👍 24
  • ❤ 12
  • 🥰 2
Post #634 6.78K
Пых Пыхап #2 Буквально через несколько минут начнётся второй Пыхап! Залетайте в трансляцию на YouTube и VKВидео! 🤔 Шардирование в RabbitMQ Антон Растрыгин расскажет, как разбирать очередь параллельно, но последовательно. ⬇️Слайды 🤝 Гибкий проект с фича-флагами…
Реализация нейронной сети на PHP

Прямо сейчас Алексей Нечаев рассказывает про нейросетки в PHP! Залетайте в транляцию и задавайте вопросы.

⬇️Слайды

https://youtu.be/OVYFFQppq2I
https://vkvideo.ru/video-228746873_456239022
  • 🔥 27
  • 👍 8
  • ❤ 2
  • 🤡 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →