Heim > PHP-Framework > Laravel > Hauptteil

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

藏色散人
Freigeben: 2021-08-18 09:01:53
nach vorne
2261 Leute haben es durchsucht

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 事件名称
Nach dem Login kopieren

Die Datei wird im Verzeichnis app/Events gespeichert.

Listener:

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

php artisan make:listener 监听器名称
Nach dem Login kopieren

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 = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];
Nach dem Login kopieren

Verteilung

event(new TestEvent());
Nach dem Login kopieren

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,
];
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Beobachterregistrierung :
Registrieren Sie

User::observe(UserObserver::class);
Nach dem Login kopieren

beim Dienstanbieter oder registrieren Sie

public static function booted()
{
     self::observe(UserObserver::class);
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:jianshu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage