%PDF- %PDF-
Direktori : /home/silvzytp/calling_code/vendor/laravel/framework/src/Illuminate/Foundation/Console/ |
Current File : //home/silvzytp/calling_code/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php |
<?php namespace 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] )); } } }