Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Foundation\Console;use Illuminate\Console\Command;use Illuminate\Foundation\Support\Providers\EventServiceProvider;use Symfony\Component\Console\Attribute\AsCommand;#[AsCommand(name: 'event:generate')]class EventGenerateCommand extends Command{/*** The console command name.** @var string*/protected $name = 'event:generate';/*** The name of the console command.** This name is used to identify the command during lazy loading.** @var string|null** @deprecated*/protected static $defaultName = 'event:generate';/*** The console command description.** @var string*/protected $description = 'Generate the missing events and listeners based on registration';/*** Execute the console command.** @return void*/public function handle(){$providers = $this->laravel->getProviders(EventServiceProvider::class);foreach ($providers as $provider) {foreach ($provider->listens() as $event => $listeners) {$this->makeEventAndListeners($event, $listeners);}}$this->components->info('Events and listeners generated successfully.');}/*** Make the event and listeners for the given event.** @param string $event* @param array $listeners* @return void*/protected function makeEventAndListeners($event, $listeners){if (! str_contains($event, '\\')) {return;}$this->callSilent('make:event', ['name' => $event]);$this->makeListeners($event, $listeners);}/*** Make the listeners for the given event.** @param string $event* @param array $listeners* @return void*/protected function makeListeners($event, $listeners){foreach ($listeners as $listener) {$listener = preg_replace('/@.+$/', '', $listener);$this->callSilent('make:listener', array_filter(['name' => $listener, '--event' => $event]));}}}