setName(self::ROUTE) ->addOption('all', 'a', InputOption::VALUE_NONE, 'Show all.') ->setDescription('Show queued events.'); } protected function execute(InputInterface $input, OutputInterface $output): int { $filter = [ EventsTable::COLUMN_STATUS => Status::PENDING->value ]; if ($input->getOption('all')) { $filter = []; } $events = $this->repo->findAll($filter); $mode = $input->getOption('output'); if ('table' === $mode) { $list = []; foreach ($events as $event) { $list[] = [ 'id' => $event->id, 'event' => $event->event, 'added' => $event->created_at, 'status' => ucfirst(strtolower($event->status->name)), 'Dispatched' => $event->updated_at ?? 'N/A', ]; } $keys = $list; } else { $keys = array_map(fn($event) => $event->getAll(), $events); } $this->displayContent($keys, $output, $mode); return self::SUCCESS; } }