如果Event Listener类在命名空间中,如何定义事件侦听器

时间:2013-08-13 05:41:57

标签: php events laravel laravel-4

定义Event Listener in a Class时,如果Class恰好在命名空间中,我应该如何使用Event::listen方法定义侦听器?

namespace MyApp\Events;
class MyEventClass{
        public function onUserCreated(){
              Log::info('Event is fired');
        }
}

Event::listen('myapp.createuser','MyApp\Events\MyEventClass@onUserCreated');会抛出以下错误

Class MyApp\Events\MyEventClass does not exist

1 个答案:

答案 0 :(得分:1)

您需要确保实际加载命名空间。 Aka,你的composer.json文件中的某个地方 - 你在告诉作曲家/ laravel这个名称空间所在的位置吗?如果没有,那是你的第一步。您通常需要将其添加到psr-0位置,如下所示:

"autoload": {
    "psr-0": {
        "MyApp": "src/"
    }
}

这告诉laravel / composer你的命名空间“MyApp”的代码可以在src / MyApp找到(你的Events文件夹是其逻辑扩展名)。