Heim > PHP-Framework > Laravel > Hauptteil

Laravel – Ereignisbehandlung

王林
Freigeben: 2024-08-27 13:50:26
Original
935 Leute haben es durchsucht

Events bieten eine einfache Beobachterimplementierung, die es einem Benutzer ermöglicht, verschiedene in der Webanwendung ausgelöste Ereignisse zu abonnieren und anzuhören. Alle Ereignisklassen in Laravel werden im Ordner app/Events und die Listener im Ordner app/Listeners gespeichert.

Der handwerkliche Befehl zum Generieren von Ereignissen und Listenern in Ihrer Webanwendung wird unten angezeigt −

 php artisan event:generate
Nach dem Login kopieren

Dieser Befehl generiert die Ereignisse und Listener für die jeweiligen Ordner, wie oben beschrieben.

Event Generator

Ereignisse und Listener bieten eine hervorragende Möglichkeit, eine Webanwendung zu entkoppeln, da ein Ereignis mehrere unabhängige Listener haben kann voneinander. Der vom Befehl artisan erstellte Ordner „events“ enthält die folgenden zwei Dateien: event.php und SomeEvent.php. Sie werden hier angezeigt −

Event.php

<?php
Namespace AppEvents;
abstraktes Klassenereignis{
   //
}
Nach dem Login kopieren

Wie oben erwähnt, enthält event.php die grundlegende Definition der Klasse Event und ruft den Namespace AppEvents auf. Bitte beachten Sie, dass die benutzerdefinierten oder benutzerdefinierten Ereignisse in dieser Datei erstellt werden.

SomeEvent.php

<?php

Namespace AppEvents;

verwenden Sie AppEventsEvent;
verwenden Sie IlluminateQueueSerializesModels;
verwenden Sie IlluminateContractsBroadcastingShouldBroadcast;

Klasse SomeEvent extends Event{
   verwenden Sie SerializesModels;
   /**      * Erstellen eine neue Ereignisinstanz.
      *
      * @return void
   */
   
   öffentliche Funktion __construct() {
      //
   }
   
   /**      * Ermitteln Sie die Kanäle, auf denen die Veranstaltung übertragen werden soll.
      *
      * @return Array
   */
   
   öffentliche Funktion broadcastOn() {
      zurückkehren [];
   }
}
Nach dem Login kopieren

Beachten Sie, dass diese Datei Serialisierung zum Übertragen von Ereignissen in einer Webanwendung verwendet und dass die erforderlichen Parameter auch in dieser Datei initialisiert werden.

Wenn wir beispielsweise eine Bestellvariable im Konstruktor zum Registrieren eines Ereignisses initialisieren müssen, können wir dies tun Gehen Sie folgendermaßen vor: −

public function __construct(Order $order) {
   $this->order = $order;
}
Nach dem Login kopieren

Listener

Listener verwalten alle Aktivitäten, die in einem registrierten Ereignis erwähnt werden. Der handwerkliche Befehl event:generate erstellt alle listeners im Verzeichnis app/listeners. Der Listeners-Ordner enthält eine Datei EventListener.php, die alle für die Handhabung von Listenern erforderlichen Methoden enthält.

EventListener.php

<?php

Namespace AppListeners;

use AppEventsSomeEvent;
use IlluminateQueueInteractsWithQueue;
use IlluminateContractsQueueShouldQueue;

Klasse EventListener{
   /**      * Erstellen Sie den Ereignis-Listener.
      *
      * @return void
   */
   
   öffentliche Funktion __construct() {
      //
   }

   /**      * Bearbeiten das Ereignis.
      *
      * @param SomeEvent $event
      * @return void
   */
   
   öffentliches Funktionshandle(SomeEvent $event) {
      //
   }
}
Nach dem Login kopieren

Wie im Code erwähnt, enthält es eine Handle-Funktion zum Verwalten verschiedener Ereignisse. Wir können verschiedene unabhängige Listener erstellen, die auf ein einzelnes Ereignis abzielen.

Das obige ist der detaillierte Inhalt vonLaravel – Ereignisbehandlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
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