discoverSignals($registry); if ($signals->isEmpty()) { $this->displayNoSignalsWarning(); return self::SUCCESS; } $this->displaySignalCount($signals->count()); foreach ($signals as $signal) { $this->displaySignalDetails($signal); } return self::SUCCESS; } private function discoverSignals(SignalRegistry $registry): Collection { $registry->discover(); return $registry->all(); } private function displayNoSignalsWarning(): void { $this->warn('No signals registered.'); $this->info('Create signals in app/Signals or register them in config/signal.php'); } private function displaySignalCount(int $count): void { $this->components->info("Found {$count} ".str('signal')->plural($count)); $this->newLine(); } private function displaySignalDetails(object $signal): void { $className = class_basename($signal); $fullClassName = get_class($signal); $this->line(" {$className}"); $this->line(" Class: {$fullClassName}"); $this->displayEventTypes($signal); $this->displayCollections($signal); $this->displayDids($signal); $this->displayQueueInfo($signal); $this->newLine(); } private function displayEventTypes(object $signal): void { $eventTypes = collect($signal->eventTypes()) ->map(fn ($type) => "{$type}") ->join(', '); $this->line(" Events: {$eventTypes}"); } private function displayCollections(object $signal): void { $collections = $signal->collections() ? collect($signal->collections())->map(fn ($col) => "{$col}")->join(', ') : 'All collections'; $this->line(" Collections: {$collections}"); } private function displayDids(object $signal): void { if (! $signal->dids()) { return; } $dids = collect($signal->dids()) ->map(fn ($did) => "{$did}") ->join(', '); $this->line(" DIDs: {$dids}"); } private function displayQueueInfo(object $signal): void { if (! $signal->shouldQueue()) { return; } $queue = $signal->queue() ?? 'default'; $this->line(" Queue: {$queue}"); } }