2013-08-30 49 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