Php 如果事件侦听器类位于命名空间中,如何定义事件侦听器

Php 如果事件侦听器类位于命名空间中,如何定义事件侦听器,php,events,laravel,laravel-4,Php,Events,Laravel,Laravel 4,在定义时,如果类恰好位于命名空间中,我应该如何使用Event::listen方法定义侦听器 namespace MyApp\Events; class MyEventClass{ public function onUserCreated(){ Log::info('Event is fired'); } } Event::listen('myapp.createuser','myapp\Events\MyEventClass@onU

在定义时,如果类恰好位于命名空间中,我应该如何使用
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不存在

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

"autoload": {
    "psr-0": {
        "MyApp": "src/"
    }
}
这会告诉laravel/composer,命名空间“MyApp”的代码位于src/MyApp(Events文件夹是该命名空间的逻辑扩展)