// Событие
class UserRegisteredEvent {
public function __construct(public User $user) {}
}
// Listener
#[AsEventListener]
class SendWelcomeEmailListener {
public function __invoke(UserRegisteredEvent $event): void {
$this->mailer->send($event->user->email, 'Welcome!');
}
}
// Dispatch
$dispatcher->dispatch(new UserRegisteredEvent($user));Event Dispatcher реализует паттерн Observer. В Symfony используется повсюду: HttpKernel, Form, Security, Console.