December 18, 2015

Custom Events with Laravel 5 ­ Part 1

It is easy to write custom events and handlers, but writing your own events will allow a lot more

flexibility in your application. So let’s get to it!


In this tutorial we will work with a simple application that allows users to create their own Posts

and then the Admin can review and approve them.

When a user creates a Post, the Admin will get a notification email for the same. Similarly, when

the Admin approves the Post, the User will get a notification email.

For these two cases we will need to register two events which are PostWasCreated and

PostWasApproved. Their respective handlers will be NotifyAdmin and NotifyPostOwner.

Hands On

Lets begin with registering our first event and its handler. Laravel provides us with an

EventServiceProvider, all the events are registered here.


* Register our events inside the $listen array.


protected $listen = [

‘App\Events\PostWasCreated’ => [




Now, after registering the event we need to define it. Note that we have not created any classes

yet for our event. To do that we will be using the Artisan Command “php artisan

event:generate”. After running this command you will notice Classes for both, our event and its

handler is created under “App\Events” and “App\Listeners” respectively.

As mentioned in the Laravel docs, the event class “App\Events\PostWasCreated” is nothing but

a placeholder for the event.

“An event class is simply a data container which holds the information related to the


Our PostWasCreated would pretty much look like this

namespace App\Events;

Leave a Reply

Your email address will not be published. Required fields are marked *