Heim  >  Artikel  >  PHP-Framework  >  Lasst uns gemeinsam etwas über Ereignisse und Beobachter in Laravel lernen!

Lasst uns gemeinsam etwas über Ereignisse und Beobachter in Laravel lernen!

藏色散人
藏色散人nach vorne
2021-08-13 14:18:122175Durchsuche

In der folgenden Kolumne werden die Ereignisse und Beobachter in Laravel aus der Kolumne Laravel-Tutorial vorgestellt. Ich hoffe, dass sie für Freunde in Not hilfreich ist!

1: Ereignisse und Zuhörer

Ereignis ist ein relativ weit gefasster Begriff, er kann eine durchgeführte Aktion darstellen. Was zusammen mit dem Ereignis erscheint, ist der Listener, der verwendet wird, um zu überwachen, was Sie tun, und um eine anschließende Verarbeitung Ihres Verhaltens durchzuführen.
Das Ereignissystem bietet eine hervorragende Möglichkeit, verschiedene Aspekte der Anwendung zu entkoppeln, da ein einzelnes Ereignis mehrere voneinander unabhängige Listener haben kann. Beispielsweise möchten Sie dem Benutzer möglicherweise jedes Mal eine Benachrichtigung senden, wenn eine Bestellung versandt wird. Anstatt den Auftragsverarbeitungscode an den Benachrichtigungscode zu koppeln, können Sie ein Ereignis schreiben, das abgehört werden kann.

Ereignisse:
Wenn das Laravel-Framework Ereignisse erstellen möchte, können Sie diese mit dem folgenden Befehl erstellen:

php artisan make:event 事件名称

Die Datei wird im Verzeichnis app/Events gespeichert.

Listener:

Das Erstellen eines Listeners kann mit dem folgenden Befehl erstellt werden:

php artisan make:listener 监听器名称

Registrierung:

Nachdem das Ereignis und der Listener erstellt wurden, müssen sie kombiniert werden. Wir können es beim EventServiceProvider-Dienstanbieter registrieren. Wie folgt:

    protected $listen = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];

Verteilung

event(new TestEvent());

Zwei: Modellereignisse

Modellereignisse sind zusätzliche Funktionen, die speziell für Modelle hinzugefügt wurden. Es schafft für uns entsprechende Ereignisse und Zuhörer. Bei der Verwendung von Modellereignissen müssen wir uns an die vom Modell vorgegebenen Regeln halten:

  • abgerufen: Wird nach Erhalt der Modellinstanz ausgelöst.
  • Erstellen: Wird vor dem Einfügen in die Datenbank ausgelöst.
  • Erstellt: Wird nach dem Einfügen in die Datenbank ausgelöst
  • aktualisieren: Aktualisiert auf „Ausgelöst vor der Datenbank“
  • aktualisiert: Wird nach dem Aktualisieren in der Datenbank ausgelöst
  • Speichern: Wird vor dem Speichern in der Datenbank ausgelöst (vor dem Einfügen/Aktualisieren werden sowohl das Einfügen als auch das Aktualisieren ausgelöst)
  • gespeichert: Wird nach dem Aktualisieren ausgelöst Speichern in der Datenbank (nach dem Einfügen/Aktualisieren, unabhängig davon, ob das Einfügen oder Aktualisieren ausgelöst wird)
  • Löschen: Wird vor dem Löschen des Datensatzes aus der Datenbank ausgelöst.
  • Gelöscht: Wird nach dem Löschen des Datensatzes aus der Datenbank ausgelöst.
  • Wiederherstellen: Wird vor dem Wiederherstellen ausgelöst der vorläufig gelöschte Datensatz
  • wiederhergestellt: Wird nach dem Wiederherstellen des vorläufig gelöschten Datensatzes ausgelöst

Erforderliche Bindung

protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];

3 am Modell: Das Beobachterereignis

muss dem Zuhörer zugeordnet werden , wir müssen sie registrieren und implementieren, was problematischer sein wird. Zu diesem Zeitpunkt können wir über die Verwendung von Beobachtern nachdenken. Wenn Sie mehrere Ereignisse in einem Modell abhören, können Sie Beobachter verwenden, um diese Zuhörer in einer separaten Klasse zu organisieren.

Verwendung von Beobachtern:

Beobachter können mit dem folgenden Befehl erstellt werden:

php artisan make:observer

Wenn Sie eine direkte Verknüpfung mit dem Modell herstellen möchten, können Sie auch direkt Parameter hinzufügen, die mit dem Modell verknüpft werden sollen:

php artisan make:observer UserObserver --model=User

Beobachterregistrierung :
Registrieren Sie

User::observe(UserObserver::class);

beim Dienstanbieter oder registrieren Sie

public static function booted()
{
     self::observe(UserObserver::class);
}

beim Modell

Das obige ist der detaillierte Inhalt vonLasst uns gemeinsam etwas über Ereignisse und Beobachter in Laravel lernen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jianshu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen