Сегодня успешно завершилось голосование за RFC Pipe operator v3, и теперь в PHP 8.5 можно будет вызывать несколько функций по цепочке, не используя промежуточные переменные и вложенные вызовы:
$responseBody =
$this->normalizer->normalize($message)
|> $this->prepareRequestData(...)
|> fn (array $data): Request => $this->buildRequest($endpoint, $data)
|> $this->httpClient->request(...)
|> fn (Response $response) => $response->getBody()
;
Этот RFC также обсуждался на каналах PHP Fart Time и Пых.
В разделе Future Scope автор рассматривает возможность со временем добавить синтаксис $$, который позволит последнюю строку превратить в |> $$->getBody().
Такая штука есть в Kotlin, называется "implicit name of a single parameter" (неявное имя единственного параметра). В коде обозначается как it:
strings
.filter { it.length == 5 }
.sortedBy { it }
.map { it.uppercase() }
Прикол в том, что прямо сейчас в PHP, не внося изменений в язык, ты можешь отчасти эмулировать поведение такого it!
Залетай в Хобота, там в разделе "Конкурсы" ты найдёшь подробное описание задачи. Первый, кто правильно её решит, получит билет на конференцию!
Разбор решений будет через пару дней происходить в прямом эфире на канале Пых (жди анонса).