*/ class AppManagementEventListener extends Action implements IEventListener { public function handle(Event $event): void { if ($event instanceof AppEnableEvent) { $this->appEnable($event); } elseif ($event instanceof AppDisableEvent) { $this->appDisable($event); } elseif ($event instanceof AppUpdateEvent) { $this->appUpdate($event); } } private function appEnable(AppEnableEvent $event): void { if (empty($event->getGroupIds())) { $this->log('App "%s" enabled', ['app' => $event->getAppId()], ['app'] ); } else { $this->log('App "%1$s" enabled for groups: %2$s', ['app' => $event->getAppId(), 'groups' => implode(', ', $event->getGroupIds())], ['app', 'groups'] ); } } private function appDisable(AppDisableEvent $event): void { $this->log('App "%s" disabled', ['app' => $event->getAppId()], ['app'] ); } private function appUpdate(AppUpdateEvent $event): void { $this->log('App "%s" updated', ['app' => $event->getAppId()], ['app'] ); } }