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

Хобот @phpyhobot
https://youtube.com/@phpyh
https://vkvideo.ru/@phpyh
https://news.1rj.ru/str/isPHPdying

Статистика: https://news.1rj.ru/str/INOTAROBOT?start=st1219340804

Для связи используйте личные сообщения канала.
Download Telegram
Итоги второго Пыхапа

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

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

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

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

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

До встречи в офлайне!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥69👍2412🥰2
Обзор PHP RFC #1

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

Залетайте!

https://youtu.be/XSVld58EAMI
https://vkvideo.ru/video-228746873_456239025
🔥13👍8😁61🤣1
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🤯137👻1
Всех люблю! Ваш Валентин. 🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
170😁72🤣22🔥12❤‍🔥7😘5👎2🌚1
PHP True Async

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

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

https://externals.io/message/126402
👍75🔥4411
Пыхап ищет спонсора!

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

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

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

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

Про первый Пыхап: https://news.1rj.ru/str/phpyh/557.
Итоги второго: https://news.1rj.ru/str/phpyh/636.
👍31🔥143🦄1
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🔥1710👎2🥱1
PHP-линч #28 с Андреем Моховым / andi-lab/graphql-php

В среду в 18:30 вместе с Андреем Моховым отлинчуем его библиотеку для описания GraphQL API на базе webonyx/graphql-php с возможностью интеграции в SpiralFramework.

https://github.com/andrey-mokhov/graphql-php
https://github.com/andrey-mokhov/graphql-php-spiral

YouTube: https://youtu.be/DQPtYimff6M
VK Видео: https://vkvideo.ru/video-228746873_456239027
👍25🔥17
Есть тут такие, кто, как и я, не юзает чат-боты и счастливо живёт?
Anonymous Poll
54%
Да!
46%
Нет, ИИ — наше всё, а ты чёртов ретрогад.
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
Пых
PHP RFC: Marking return values as important (#[\NoDiscard]) За internals не успеть в последнее время! Вот уже на голосование вышел RFC от Tim Düsterhus и Volker Dusch. Они предлагают добавить в PHP атрибут #[NoDiscard] — им можно будет пометить функции и…
Что я сам думаю по этому поводу?

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

По сути, это очередная проблема, которая должна решаться статическим анализом, а не рантаймом.
👍49💯10🔥4👎2
В честь 8 марта я немножко помучил Midjourney:

This is the logo of my Telegram channel about PHP in the form of an elephant. Add a flower to its trunk. Please keep the same image style.


С праздником, дорогие подписчицы! 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
64🔥23👍22🍓5💩3
Media is too big
VIEW IN TELEGRAM
Коллекционный PHP-слоник 💙 Пых!

Как вы все знаете, маскот языка PHP — слон. В 1998 году Vincent Pontier придумал дизайн оригинального плюшевого слоника, который с тех пор был многократно переосмыслен по различным поводам.

Я давно мечтал о слоне для Пыха, и в конце прошлого года благодаря Сергею Пантелееву мне удалось заказать прототип: аккуратного синего слоника с логотипом канала на боку и белыми лапками.

Чтобы запустить в производство целую партию, я решил создать краудфандинговую кампанию! Среди вознаграждений — слоник Пых, слоник PHP 8 Сергея, та самая долгожданная лекция по Message Bus и личная встреча со мной. Переходите по ссылке и принимайте участие. Буду бесконечно рад, если у нас получится воплотить в жизнь этот проект! 💙

https://planeta.ru/campaigns/phpyh_slon
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍327👏7
Пых
Ребята, мы уже собрали 25%! Я в шоке. Спасибо!
58% за день. Вы мои герои! 🦾
🔥55👍196🥱2