Где я могу получить полный список событий Laravel (запущенных библиотеками ядра)?
Я хочу знать, какие события запускаются библиотеками ядра Laravel. Я хочу получить полный список, например laravel.query
и laravel.done
.
Есть четыре события, перечисленные вофициальных документах , но я думаю, что у Laravel больше событий, чем эти четыре!
4 ответа:
На самом деле Laravel не запускает так много событий, как вы думаете. В то время как он использует систему событий, она существует для разработчиков, чтобы использовать ее в приложениях. В общем, вот список, который я составил.
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