What is an Event?

An Event is something that happens in your application.

  • User Registered
  • Order Placed
  • Payment Successful
php artisan make:event UserRegistered

What is a Listener?

A Listener performs an action when an event occurs.

  • Send Welcome Email
  • Send SMS
  • Save Log
php artisan make:listener SendWelcomeEmail

Both One Time

php artisan make:listener SendWelcomeEmail --event=UserRegistered

Event is something that happens in the application. Listener listens to that event and performs an action.

Example:

Step -1:  Create Event:

app/Events/UserRegistered.php

<?php

namespace App\Events;

class UserRegistered
{
    public $user;

    public function __construct($user)
    {
        $this->user = $user;
    }
}

Step 2: Create Listener:

app/Listeners/SendWelcomeEmail.php

<?php

namespace App\Listeners;

use App\Events\UserRegistered;

class SendWelcomeEmail
{
    public function handle(UserRegistered $event)
    {
        echo "Welcome Email Sent to " . $event->user;
    }
}

Step 3: Register Event & Listener:

app/Providers/EventServiceProvider.php

protected $listen = [
    UserRegistered::class => [
        SendWelcomeEmail::class,
    ],
];

Step 4: Fire the Event:

app/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use App\Events\UserRegistered;

class UserController extends Controller
{
    public function register()
    {
        $user = "John";

        event(new UserRegistered($user));

        return "User Registered";
    }
}