Where can I get a complete list of Laravel events (fired by the core libraries)?

前端 未结 4 921
你的背包
你的背包 2020-12-25 12:10

I want to know what events are fired by Laravel core libraries. I want to get the complete list, such as laravel.query and laravel.done.

Th

相关标签:
4条回答
  • 2020-12-25 12:53

    If you are debugging your Laravel application, you can get a full list of fired events in the console (for example when you are running unit tests or a artisan command) for the running process with following snippet:

    Event::listen('*', function ($event) {
        echo $event."\n";
    });
    

    If you use logger function it would go to infinite loop.

    0 讨论(0)
  • 2020-12-25 12:57

    Laravel doesn't actually fire as many events as you'd think. While it does make use of the Event system it's there for developers to use within there applications. Anyway, here's a list I compiled.

    laravel.done
    laravel.log
    laravel.query
    laravel.resolving
    laravel.composing: {viewname}
    laravel.started: {bundlename}
    laravel.controller.factory
    laravel.config.loader
    laravel.language.loader
    laravel.view.loader
    laravel.view.engine
    
    view.filter
    
    eloquent.saving
    eloquent.updated
    eloquent.created
    eloquent.saved
    eloquent.deleting
    eloquent.deleted
    eloquent.booted: {$model}
    eloquent.booting: {$model}
    
    
    500
    404
    

    The 500 and 404 are both error related events. These are set in the routes.php file so you can see what the default listener is.

    I'd like to point out that the eloquent.{event} have another variation containing the class name that is being updated.

    eloquent.{event}: {classname}
    

    I'm not going to say this is absolutely everything but it should be at least 99% of it.

    0 讨论(0)
  • 2020-12-25 12:57

    Here are a few of them more, got them while dumping static::$events

    laravel.config.loader
    laravel.view.loader
    laravel.language.loader
    laravel.view.engine
    404
    

    Not really sure if overriding these would work, as they are internally called

    0 讨论(0)
  • 2020-12-25 13:08

    In addition to Jason Lewis answer, I have few more to add. I simply searched for fire() function and came up with following list for Laravel 5,

    $this->events->fire('auth.attempt', $payload);
    $this->events->fire('auth.login', [$user, $remember]);
    $this->events->fire('auth.logout', [$user]);
    $this->events->fire('cache.'.$event, $payload);
    $this->laravel['events']->fire('cache:clearing', [$storeName]);
    $this->laravel['events']->fire('cache:cleared', [$storeName]);
    $events->fire('artisan.start', [$this]);
    $this->events->fire('illuminate.query', array($query, $bindings, $time, $this->getName()));
    $this->events->fire('connection.'.$this->getName().'.'.$event, $this);
    $this['events']->fire('bootstrapping: '.$bootstrapper, [$this]);
    $this['events']->fire('bootstrapped: '.$bootstrapper, [$this]);
    $this['events']->fire('locale.changed', array($locale));
    $this['events']->fire($class = get_class($provider), array($provider));  //after provider registered.
    $this->app['events']->fire('kernel.handled', [$request, $response]);
    $this->dispatcher->fire('illuminate.log', compact('level', 'message', 'context'));
    $this->events->fire('mailer.sending', array($message));
    $this->events->fire('illuminate.queue.failed', array($connection, $job, $data));
    $this->events->fire('illuminate.queue.stopping');
    $this->events->fire('router.matched', [$route, $request]);
    $this->events->fire('composing: '.$view->getName(), array($view));
    $this->events->fire('creating: '.$view->getName(), array($view));
    
    0 讨论(0)
提交回复
热议问题