suchen
HeimPHP-FrameworkLaravelLasst uns gemeinsam etwas über Ereignisse und Beobachter in Laravel lernen!

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. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Tech -Probleme: Gewährleistung eines gerechten Zugangs zu Tools und Ressourcen für verteilte TeammitgliederTech -Probleme: Gewährleistung eines gerechten Zugangs zu Tools und Ressourcen für verteilte TeammitgliederApr 29, 2025 am 12:40 AM

Methoden, um sicherzustellen, dass verteilte Teammitglieder fairen Zugriff auf Tools und Ressourcen haben: 1) Verwenden von Alternativen mit niedriger Bandbreite, wie z. B. asynchrone Video- oder Textaktualisierungen, um Verbindungsprobleme zu lösen; 2) Einrichten von Kern überlappende Arbeitszeiten und flexible Arbeitszeiten für die Verwaltung von Zeitzonenunterschieden; 3) Anpassen an unterschiedliche kulturelle Bedürfnisse durch Übersetzungsfunktionen und kulturelle Ausbildung zur Sensibilisierung. Diese Strategien tragen dazu bei, ein integratives und effizientes Remote -Arbeitsumfeld zu schaffen.

Instant Messaging Must-Haves: Förderung der Echtzeitkommunikation in entfernten EinstellungenInstant Messaging Must-Haves: Förderung der Echtzeitkommunikation in entfernten EinstellungenApr 29, 2025 am 12:38 AM

ForeNhancingRemoteCollaboration, AninstantMessagingToolmuMuShave: 1) ZuverlässigkeitForConsistentMessagedelivery, 2) AnintuitiveUSerInterfaceForeAnavigation, 3) Real-TimenotificationStostayUpdated, 4) SeamlessFilesharningFocumentDocumentExchange, 5) Integration

Haben Sie jemals Herausforderungen bei der Arbeit in verteilten Teams gestellt?Haben Sie jemals Herausforderungen bei der Arbeit in verteilten Teams gestellt?Apr 29, 2025 am 12:35 AM

TheBiggestChallengeofManaging -verteiltdeamSiscommunication

Was sind die Sicherheitsverbesserungen in der neuen Laravel -Version?Was sind die Sicherheitsverbesserungen in der neuen Laravel -Version?Apr 29, 2025 am 12:17 AM

Die neueste Version von Laravel hat die Sicherheit erheblich verbessert, darunter: 1. Verbesserter CSRF -Schutz durch einen robusteren Token -Überprüfungsmechanismus; 2. Verbesserter SQL -Injektionsschutz durch eine verbesserte Abfragekonstruktionsmethode; 3.. Bessere Sitzungsverschlüsselung, um die Sicherheit der Benutzerdaten zu gewährleisten. 4. Verbessertes Authentifizierungssystem, Unterstützung feinerer granularer Benutzerauthentifizierung und Multi-Faktor-Authentifizierung (MFA).

Zeitzone Tango: Navigieren von Planungskonflikten in einer globalen BelegschaftZeitzone Tango: Navigieren von Planungskonflikten in einer globalen BelegschaftApr 29, 2025 am 12:13 AM

Tonavigatesschoningconflictsinaglobalworkforce, USETechnologie, Empathie und Strategikplanung: 1) uaTools -ähnliche Welt -TimeBuddyorcalendlyForScheduling; 2) rotatatemeetingTimestoensureFairness;

Full-Stack-Entwicklung mit Laravel: Verwalten von APIs und Frontend-LogikFull-Stack-Entwicklung mit Laravel: Verwalten von APIs und Frontend-LogikApr 28, 2025 am 12:22 AM

In der Entwicklung von Laravel Full-Stack sind effektive Methoden zur Verwaltung von APIs und Front-End-Logik: 1) Verwenden von APIs mit erholsamen Controllern und Ressourcenrouting-Management; 2) Verarbeitung der Front-End-Logik durch Klingenvorlagen und Vue.js oder React; 3) Optimierung der Leistung durch API -Versioning und Paging; 4) Aufrechterhaltung der Trennung von Back-End- und Front-End-Logik, um die Wartbarkeit und Skalierbarkeit zu gewährleisten.

Verloren in der Übersetzung: Kulturelle Nuancen und Missverständnisse in verteilten TeamsVerloren in der Übersetzung: Kulturelle Nuancen und Missverständnisse in verteilten TeamsApr 28, 2025 am 12:22 AM

TotackleculturalinTricieSchuit -Verteilerteams, FosteranenvironmentcelebratingDifferzen, Bemindfulofcommunication, Andusetoolsforclarity.1) ImplementculturalexchangesSessionStosharestories undtraditions.2) adjitcommunicationMethodstosuitculturalPreferenz

Messung der Verbindung: Analytik und Erkenntnisse für die Effektivität der FernkommunikationMessung der Verbindung: Analytik und Erkenntnisse für die Effektivität der FernkommunikationApr 28, 2025 am 12:16 AM

ToassStheeFeffectivityofremoteCommunication, Focuson: 1) EngagementMetricSlikemessageFrequency und ResponSetime, 2) Sentimentanalysistogaigeemotionaltone, 3) treffeneffektivitätsthroughattendanceAndactionItems und 4) networkanalysistestandCommunivitätscommunicationPa

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool