When defining a Event Listener in a Class and if the Class happens to be in a namespace, how should I defined the listener using the Event::listen
method?
namespace MyApp\Events;
class MyEventClass{
public function onUserCreated(){
Log::info('Event is fired');
}
}
Event::listen('myapp.createuser','MyApp\Events\MyEventClass@onUserCreated');
throws the following error
Class MyApp\Events\MyEventClass does not exist
You need to ensure that your namespace is actually being loaded. Aka, somewhere in your composer.json file - are you telling composer/laravel where this namespace resides? If not, that's your first step. You usually need to add it to the psr-0 location, like so:
"autoload": {
"psr-0": {
"MyApp": "src/"
}
}
This tells laravel/composer that your code for the namespace "MyApp" is found at src/MyApp (with your Events folder being a logical extension of that).