events[$section])) { $this->events[$section][$event] = $class; } } /** * Set all events * @param array $events */ public function setEvents(array $events): void { $this->events = $events; } /** * Get a specific event callback * @param string $section * @param string $event * * @return Event|string * @throws EventNotFoundException */ public function getEvent(string $section, string $event): Event|string { if (isset($this->events[$section])) { return $this->events[$section][$event]; } throw new EventNotFoundException(); } /** * Get all events * * @return array */ public function getEvents(): array { return $this->events; } }