Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php
Строк: 117
<?php

namespace IlluminateFoundationConsole;

use 
IlluminateConsoleCommand;
use 
IlluminateFoundationSupportProvidersEventServiceProvider;
use 
SymfonyComponentConsoleAttributeAsCommand;

#[AsCommand(name: 'event:generate')]
class EventGenerateCommand extends Command
{
    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name '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]
            ));
        }
    }
}
Онлайн: 0
Реклама