. */ namespace SP\Core\Events; /** * Interface EventDispatcherInterface */ interface EventDispatcherInterface { /** * Check whether an EventReceiver is attached * * @param EventReceiver $receiver * @return bool */ public function has(EventReceiver $receiver): bool; /** * Attach an EventReceiver * * @param EventReceiver $receiver * @return void */ public function attach(EventReceiver $receiver): void; /** * Detach an EventReceiver * * @param EventReceiver $receiver * @return void */ public function detach(EventReceiver $receiver): void; /** * Notify to receivers * * @param string $eventName Nombre del evento * @param Event $event Objeto del evento */ public function notify(string $eventName, Event $event): void; }