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
Dieser Befehl generiert die Ereignisse und Listener für die jeweiligen Ordner, wie oben beschrieben.
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 −
<?php Namespace AppEvents; abstraktes Klassenereignis{ // }
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.
<?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 []; } }
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; }
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.
<?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) { // } }
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!