Zum Inhalt springen

Glossar

Laravel Events und Listener: auf Ereignisse reagieren

Ein Mechanismus, mit dem ein Vorgang bekanntgibt, dass etwas passiert ist, und andere Teile darauf reagieren.

Eine Bestellung geht ein. Danach soll eine Bestätigung raus, das Lager informiert werden, eine Kennzahl steigen und vielleicht noch eine Buchung entstehen. Man kann das alles hintereinander in die Bestellfunktion schreiben. Oder die Bestellfunktion gibt nur bekannt: „Es ist eine Bestellung eingegangen.“ Wer darauf reagieren will, meldet sich dafür an.

Das Erste heißt Event, das Zweite Listener. Der Vorteil ist, dass eine neue Reaktion hinzukommen kann, ohne die Bestellfunktion anzufassen. Der Preis ist, dass man beim Lesen des Codes nicht mehr sofort sieht, was alles passiert.

Wo die Grenze verläuft

Entkopplung ist kein Selbstzweck. Wir setzen Events dort ein, wo mehrere Bereiche unabhängig voneinander auf denselben Vorgang reagieren, und lassen es dort bleiben, wo zwei feste Schritte aufeinander folgen.

Wichtig ist die Frage, was passiert, wenn ein Listener scheitert. Soll die Bestellung trotzdem gelten, wenn die Bestätigungsmail nicht rausgeht? Meistens ja, aber jemand muss davon erfahren. Genau deshalb laufen solche Reaktionen oft über eine Queue, die einen Versuch wiederholen kann, statt ihn stillschweigend fallenzulassen.

FAQ

Häufige Fragen

Warum nicht einfach alles nacheinander im Code aufrufen?
Bei zwei Folgeschritten ist das sogar die bessere Lösung, weil man sie beim Lesen sofort sieht. Der Punkt kippt, wenn ständig neue Reaktionen dazukommen und die ursprüngliche Funktion bei jedem Wunsch angefasst werden muss. Dann kostet das Verdrahten mehr, als die Entkopplung an Übersicht nimmt.

Verwandt

Begriffe, die dazugehören

Projekt oder Frage?

Schreiben Sie uns, worum es geht. Sie bekommen eine Einschätzung von jemandem, der selbst mit Laravel arbeitet — nicht vom Vertrieb.