Вчера на курсе обратил внимание, что низкоуровневый интерфейс обработчика сообщений, о котором многие из вас скоро узнают на лекции по MessageBus, в PHP 8.4 было бы в разы приятнее имплементировать. Как это выглядит сейчас:
interface Handler
{
public function id(): string;
public function handle(Context $context): mixed;
}
final readonly class CallableHandler implements Handler
{
public function __construct(
private string $id,
private Closure $handler,
) {}
public function id(): string
{
return $this->id;
}
public function handle(Context $context): mixed
{
return ($this->handler)($context);
}
}
Бесит, что для
id в имплементации надо так много всего написать. А вот аналогичный вариант в PHP 8.4:
interface Handler
{
public string $id { get; }
public function handle(Context $context): mixed;
}
final readonly class CallableHandler implements Handler
{
public function __construct(
public string $id,
private Closure $handler,
) {}
public function handle(Context $context): mixed
{
return ($this->handler)($context);
}
}
Ну кайф же? -5 строк кода! К сожалению, я пока не могу себе позволить писать опенсорсные либы с
"php": "^8.4", но хоть вы за меня на проектах оттянитесь!___________
Тем временем разобрали половину билетов на Пыхап в следующую пятницу. Регистрация продолжается: https://phpyh.timepad.ru/event/3250220/#register