The result is that the easiest way to define listeners is as single-method classes, like so: class ListenerOne { public function __construct( private readonly DependencyA $depA, private readonly DependencyB $depB, ) {} public function __invoke(MyEvent $event): void { ... } } #[Listen...