Laravel Event Subscriber
Installation
composer require oldtimeguitarguy/laravel-event-subscriber
- Add
OldTimeGuitarGuy\LaravelEventSubscriber\EventSubscriberProvider::class, to the providers array in config/app.php
- Run
php artisan vendor:publish to copy the config file to config/event_subscriber.php
Usage
- Create subscribers with
php artisan make:event-subscriber SubscriberName
- Add custom event classes in
config/event_subscriber.php
Description
The basic premise of this evolved from here., (*1)
I love the idea, but I don't like how you have to define that subscribe method., (*2)
This class eliminates that., (*3)
Basically create your event subscriber class just like the documentation says,
but now, if you extend from this class, you never have to write the subscribe method., (*4)
Instead, just prefix all of your event names with on as public methods., (*5)
So you would do something like this:, (*6)
class MyEventSubscriber extends EventSubscriber
{
public function onUserLogin($event)
{
// do stuff
}
public function onUserLogout($event)
{
// do stuff
}
}
That's it. There are a couple of caveats:
- It looks for the events in Laravel's
app/Events directory. (or any class you add to the classmap in the config file)
- You can have a maximum of one subdirectory under
app/Events/
- Be careful about name collisions, even if the event classes exist in different subdirectories under
app/Events