(required) what to display in the list * 'description' => (optional) short description of event */ public function addEvent($key, array $event): void { if (array_key_exists($key, $this->events)) { throw new InvalidArgumentException("The key, '$key' is already used by another webhook event. Please use a different key."); } $event['label'] = $this->translator->trans($event['label']); $event['description'] = (isset($event['description'])) ? $this->translator->trans($event['description']) : ''; $this->events[$key] = $event; } /** * Get webhook events. * * @return array */ public function getEvents() { static $sorted = false; if (empty($sorted)) { uasort($this->events, fn ($a, $b): int => strnatcasecmp( $a['label'], $b['label'])); $sorted = true; } return $this->events; } }