In Laravel, werden Ereignisse verwendet, um Aktionen auszulösen, und Listener werden verwendet, um auf diese Aktionen zu warten und als Reaktion darauf eine bestimmte Logik auszuführen.
Hier ist ein Überblick darüber, wie Ereignisse und Zuhörer in Laravel funktionieren:
Lesen Sie auch: Laravel-Hosting-Optionen
- Ein Ereignis wird über die Ereignisfassade oder die Ereignis-Helferfunktion ausgelöst.
- Der Event Dispatcher von Laravel wartet auf das Ereignis und leitet es an die registrierten Listener weiter.
- Die Listener führen die Logik aus, die Sie als Reaktion auf das Ereignis definiert haben.
Hier ist ein Beispiel, wie Sie ein Ereignis und einen Listener in Laravel erstellen können:
// Define the event
class UserRegisteredEvent extends Event
{
use SerializesModels;
public $user;
/**
* Create a new event instance.
*
* @param User $user
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}
// Define the listener
class SendWelcomeEmailListener
{
/**
* Handle the event.
*
* @param UserRegisteredEvent $event
* @return void
*/
public function handle(UserRegisteredEvent $event)
{
Mail::to($event->user->email)->send(new WelcomeEmail($event->user));
}
}
In diesem Beispiel erstellen wir ein Ereignis UserRegisteredEvent
und ein Zuhörer SendWelcomeEmailListener
. Wenn das Ereignis ausgelöst wird, wird die Handle-Methode des Listeners ausgeführt, die eine Willkommens-E-Mail an den neu registrierten Benutzer sendet.
Sie können das Ereignis und den Listener in der Datei EventServiceProvider
:
protected $listen = [
UserRegisteredEvent::class => [
SendWelcomeEmailListener::class,
],
];
Jetzt können Sie das Ereignis überall auslösen, indem Sie die Ereignis-Helferfunktion verwenden:
event(new UserRegisteredEvent($user));
Sobald Sie das Ereignis und den Listener registriert haben, übernimmt der Event Dispatcher von Laravel den Rest und löst die Listener automatisch aus, wenn das Ereignis ausgelöst wird.