2012-10-25 16 views

Trả lời

41

Laravel không thực sự bắn như nhiều các sự kiện như bạn nghĩ. Trong khi nó làm cho việc sử dụng hệ thống sự kiện ở đó cho các nhà phát triển sử dụng trong các ứng dụng đó. Dù sao, đây là một danh sách tôi biên soạn.

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 

500404 là cả hai sự kiện liên quan đến lỗi. Các tệp này được đặt trong tệp routes.php để bạn có thể biết người nghe mặc định là gì.

Tôi muốn chỉ ra rằng eloquent.{event} có một biến thể khác có chứa tên lớp đang được cập nhật.

eloquent.{event}: {classname} 

Tôi sẽ không nói điều này hoàn toàn là tất cả nhưng phải có ít nhất 99%.

+1

Điều đáng lưu ý là từ 5.4, một số điều trên đã được đổi tên hoặc xóa. Tôi đã tìm kiếm một cái gì đó tương tự như sự kiện 'laravel.done' nhưng đấu tranh để tìm bất kỳ tài liệu nào. Tôi khuyên bạn chỉ nên lắng nghe tất cả các sự kiện bằng '*' và ghi lại cá thể người điều phối sự kiện được truyền vào để cảm nhận những gì có sẵn. – Bower

3

Dưới đây là một vài trong số họ nhiều hơn, nhận được chúng trong khi bán phá giá static::$events

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

Không thực sự chắc chắn nếu trọng những sẽ làm việc, vì chúng đã được nội bộ gọi

+0

Bạn thực sự có thể nghe và xác định trình tải tùy chỉnh của riêng bạn. Điều này là tuyệt vời nếu bạn muốn có một hệ thống tải xếp tầng cho các tập tin cấu hình/xem/ngôn ngữ. Tôi đã làm điều này thỉnh thoảng. –

18

Ngoài Jason Lewis câu trả lời, tôi có thêm vài thêm. Tôi chỉ cần tìm kiếm chức năng fire() và đưa ra danh sách sau đây cho 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

Chiếu sáng \ Mail \ Events \ MessageSending –

Các vấn đề liên quan