2012-10-25 12 views

risposta

41

laravel in realtà non sparare come molti eventi come penseresti. Mentre fa uso del sistema Event, è lì per gli sviluppatori da utilizzare all'interno delle applicazioni. Ad ogni modo, ecco una lista che ho compilato.

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 

Il 500 e 404 sono entrambi gli eventi correlati di errore. Questi sono impostati nel file routes.php in modo da poter vedere qual è il listener predefinito.

Vorrei sottolineare che lo eloquent.{event} ha un'altra variante contenente il nome della classe che viene aggiornato.

eloquent.{event}: {classname} 

Non ho intenzione di dire che questo è assolutamente tutto ma dovrebbe essere almeno il 99% di esso.

+1

Vale la pena notare che dal 5.4, alcuni dei precedenti sono stati rinominati o rimossi. Stavo cercando qualcosa di simile all'evento 'laravel.done' ma ho faticato a trovare qualsiasi documentazione. Raccomando di ascoltare tutti gli eventi con '*' e di registrare l'istanza del dispatcher dell'evento inoltrata per avere un'idea di cosa è disponibile. – Bower

3

Qui ci sono alcuni di loro più, li ha ottenuto mentre il dumping static::$events

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

Non realmente sicuro se ignorando questi avrebbe funzionato, come vengono chiamati internamente

+0

Si può effettivamente ascoltare questi e definire i propri caricatori personalizzati. Questo è ottimo se si desidera un sistema di caricamento a cascata per i file di configurazione/visualizzazione/lingua. L'ho fatto occasionalmente. –

18

Oltre a Jason Lewis risposta, ho qualcuno in più da aggiungere. Ho cercato semplicemente per fire() funzione e si avvicinò con seguente lista per 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

Illuminate \ Mail \ Events \ MessageSending –

Problemi correlati