2013-08-30 84 views
0

我想定義一個註冊事件的服務提供者。所以做了以下(取自一本書)在服務提供商上分組事件註冊

<?php 
namespace MyApp\Providers; 
use Illuminate\Support\ServiceProvider; 

class EventsProvider extends ServiceProvider 
{ 

    public function boot() 
    { 
     Event::listen('some.event', function($parameter) 
     { 
      // Handle the event.. 
     }); 
    } 
} 

然後我將它添加到提供者數組。

但是,當我執行的代碼我收到以下錯誤

執行餘下的方法 (照亮的\ Support \的ServiceProvider ::寄存器)

這迫使我不得不宣佈register()方法。

當我添加到EventsProvider類的方法命名register()(不執行,只是讓它返回null)我收到以下錯誤

類「MyApp的/供應商/ EventProvider」未找到

這是爲什麼,我該如何解決它?

回答

2

你只需要聲明它,因爲它的接口中聲明:

<?php namespace MyApp\Providers; 

use Illuminate\Support\ServiceProvider; 

class EventsProvider extends ServiceProvider { 

    public function boot() 
    { 
      Event::listen('some.event', function($parameter) 
      { 
       // Handle the event.. 
      }); 
    } 

    public function register() 
    { 
    } 

} 

然後執行

composer dump-autoload --optimize 

但是,你可能也有一個錯字的地方,因爲它說Class 'MyApp/Providers/EventProviders' not found,但應是MyApp/Providers/EventProvider