Я хочу знать, какие события будут выпущены основными библиотеками Laravel. Я хочу получить полный список, например laravel.query
и laravel.done
.
В официальных документах есть четыре события, но я думаю, что у Laravel больше событий, чем у этих четырех!
Laravel фактически не запускает столько событий, как вы думаете. Хотя он использует систему Event, там разработчики могут использовать ее внутри приложений. Во всяком случае, вот список, который я собрал.
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
500
и 404
являются событиями, связанными с ошибками. Они задаются в файле routes.php
чтобы вы могли видеть, что такое прослушиватель по умолчанию.
Я хотел бы указать, что у eloquent.{event}
есть еще одна вариация, содержащая имя класса, которое обновляется.
eloquent.{event}: {classname}
Я не собираюсь говорить, что это абсолютно все, но должно быть не менее 99%.
В дополнение к ответу Джейсона Льюиса, мне осталось добавить еще немного. Я просто искал функцию fire()
и придумал следующий список для 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));
Вот некоторые из них больше, получили их при сбрасывании static::$events
laravel.config.loader laravel.view.loader laravel.language.loader laravel.view.engine 404
Не совсем уверены, что если они будут отменены, они будут работать, поскольку они внутренне называются
Для тех, кто ищет список событий Laravel 4, вы можете проверить список jasonlewis по адресу http://jasonlewis.me/article/laravel-events