Heim > Backend-Entwicklung > PHP-Tutorial > Laravel Observers: Die stillen Ninjas Ihres Anwendungslebenszyklus

Laravel Observers: Die stillen Ninjas Ihres Anwendungslebenszyklus

Linda Hamilton
Freigeben: 2024-11-08 02:00:02
Original
669 Leute haben es durchsucht

Laravel Observers: The Silent Ninjas of Your Application Lifecycle

Einführung

Stellen Sie sich vor, dass jedes Mal, wenn Sie ein Formular auf einer Website einreichen, ein unsichtbarer Assistent hereinkommt und alles noch einmal überprüft. Fügen Sie zusätzliche Details hinzu oder senden Sie sogar einen Willkommensbrief, ohne dass Sie einen Finger rühren müssen. Laravel-Beobachter sind wie Assistenten hinter den Kulissen, die im Stillen arbeiten. Und es ist leistungsstark, um alle Aufgaben dann zu erledigen, wenn Sie sie brauchen. In diesem Beitrag gehen wir näher darauf ein, wie Beobachter in Laravel arbeiten und warum sie die stillen Ninjas Ihrer App bei der Verarbeitung von Modellereignissen sind. und wie man anhand realer Beispiele das Beste aus diesen Ereignissen herausholt.

Was sind Laravel-Beobachter?

Laravel Observers sind Listener-Klassen, die Ihnen helfen, den Lebenszyklus Ihres Modells zu verwalten, indem sie bestimmte Ereignisse beobachten, wie z. B. das Erstellen, Aktualisieren oder Löschen. Beobachter können für jedes dieser Ereignisse Aktionen definieren. Halten Sie Ihre Controller und Modelle sauber und fokussiert. Die Beobachter fungieren als „Ereignisexperten“ innerhalb Ihrer Anwendung. Beobachter kümmern sich um die Backend-Arbeit, die zur Verbesserung Ihrer Codebasis erforderlich ist. und verbessern Sie Organisation und Effizienz durch ereignisgesteuerte Arbeitstrennung. Beobachter tragen zu einer modulareren und wartbareren Anwendungsstruktur bei.

Warum Beobachter verwenden?

1. Sauberere Controller und Modelle: Beobachter kümmern sich um wiederholte Aktionen, sodass sich Ihre Controller und Modelle ohne Ablenkung auf ihre Hauptaufgaben konzentrieren können.

2. Wiederverwendbarkeit des Codes: Sie können verwandte Aktionen an einem Ort konsolidieren und so Ihren Code besser lesbar und wartbar machen.

3. Fehlerbehandlung: Beobachter helfen Ihnen, Fehler zu vermeiden, indem sie Aufgaben wie Datenvalidierung oder Hintergrundaktualisierungen automatisieren, wenn sich ein Modell ändert.

4. Automatische Ereignisbehandlung: Möchten Sie jedes Mal eine Aktion auslösen, wenn ein Datensatz erstellt oder aktualisiert wird? Beobachter stehen hinter Ihnen.

Kurz gesagt: Observer eignen sich hervorragend zum Organisieren der Logik, die Sie in den verschiedenen Phasen des Lebenszyklus Ihrer App ausführen möchten.

Übersicht über Eloquent Hooks:

- Abgerufen: Wird ausgelöst, nachdem ein Datensatz aus der Datenbank abgerufen wurde.
- Erstellen: Wird ausgelöst, kurz bevor ein neuer Datensatz erstellt wird.
- Erstellt: Wird ausgeführt, nachdem ein neuer Datensatz erfolgreich erstellt wurde.
- Aktualisierung: Wird aktiviert, bevor ein vorhandener Datensatz aktualisiert wird.
- Aktualisiert: Wird ausgelöst, nachdem ein Datensatz aktualisiert wurde.
- Speichern: Wird ausgeführt, bevor ein Datensatz gespeichert wird, unabhängig davon, ob es sich um eine neue Erstellung oder eine Aktualisierung handelt.
- Gespeichert: Tritt auf, nachdem ein Datensatz gespeichert wurde, unabhängig davon, ob er neu erstellt oder aktualisiert wurde.
- Löschen: Wird initiiert, bevor ein Datensatz gelöscht oder vorläufig gelöscht wird.
- Gelöscht: Wird aktiviert, nachdem ein Datensatz gelöscht oder vorläufig gelöscht wurde.
- Wiederherstellung: Wird ausgelöst, bevor ein vorläufig gelöschter Datensatz wiederhergestellt wird.
- Wiederhergestellt: Wird ausgeführt, nachdem ein vorläufig gelöschter Datensatz erfolgreich wiederhergestellt wurde.

Schritt-für-Schritt-Anleitung: So erstellen und verwenden Sie Beobachter

Besprechen wir Beobachter anhand eines Beispiels aus der Praxis. Stellen Sie sich vor, wir erstellen eine Blogging-App und jedes Mal, wenn ein Benutzer einen Beitrag veröffentlicht, möchten wir:

  • Automatisch einen Slug aus dem Titel generieren.
  • Benachrichtigen Sie einen Administrator.
  • Notieren Sie das Veröffentlichungsdatum.

So können wir dies mit Laravel Observers erreichen!

Schritt 1: Erstellen Sie die Observer-Klasse
Laravel macht es einfach, eine Beobachterklasse zu generieren. Führen Sie diesen Befehl aus:

php artisan make:observer PostObserver --model=Post
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird eine PostObserver-Klasse im Verzeichnis app/Observers generiert und mit unserem Post-Modell verknüpft.

Schritt 2: Definieren Sie die Ereignisse im Observer

Öffnen Sie die PostObserver-Klasse und Sie werden einige praktische Methoden sehen, die bereits vorhanden sind. Jede Methode entspricht einem Modellereignis, z. B. Erstellen, Aktualisieren, Löschen und mehr.

Fügen wir unsere benutzerdefinierte Logik zum Erstellungsereignis hinzu, sodass ein Slug generiert und das Veröffentlichungsdatum aufgezeichnet wird:

use Illuminate\Support\Str;
class PostObserver
{
   public function creating(Post $post)
   {
       $post->slug = Str::slug($post->title);
       $post->published_at = now();
   }

   public function created(Post $post)
   {
      Notification::send(User::admin(), new PostPublishedNotification($post));
   }
}
Nach dem Login kopieren

Schritt 3: Registrieren Sie den Beobachter

Laravel bietet zwei Möglichkeiten, dies zu tun: das ObservedBy-Attribut im Modell oder manuell mithilfe der Beobachtungsmethode

1.Verwendung des ObservedBy-Attributs

Wenn Sie mit Laravel 10 arbeiten, können Sie das ObservedBy-Attribut direkt auf Ihrem Modell verwenden. Dieses Attribut vereinfacht die Observer-Registrierung, indem es den Observer automatisch mit dem Modell verknüpft:

use App\Observers\PostObserver;
use Illuminate\Database\Eloquent\Concerns\ObservedBy;

#[ObservedBy(PostObserver::class)]
class Post extends Model
{
   // Your Post model code
}
Nach dem Login kopieren

Dieser Ansatz ist sauber und behält die Observer-Registrierung beim Modell selbst bei, wodurch die Einrichtungsschritte reduziert werden und Ihr AppServiceProvider unberührt bleibt.

2. Manuelles Registrieren des Beobachters
Wenn Sie es vorziehen (oder mit einer Laravel-Version vor 10 arbeiten), können Sie den Observer manuell in der Boot-Methode des AppServiceProviders registrieren:

Fügen Sie in Ihrer AppProvidersAppServiceProvider.php die Beobachtungsmethode hinzu, um den Observer mit dem Modell zu verknüpfen:

php artisan make:observer PostObserver --model=Post
Nach dem Login kopieren
Nach dem Login kopieren

Sobald Laravel registriert ist, löst es die Methoden Ihres Beobachters aus, wenn die entsprechenden Ereignisse im Post-Modell auftreten.

Schritt 4: Testen Sie Ihren Beobachter

Um Ihren Beobachter in Aktion zu sehen, versuchen Sie, einen Beitrag in Ihrer App zu erstellen oder zu aktualisieren. Der Slug wird automatisch generiert, das Veröffentlichungsdatum wird automatisch festgelegt und unser hypothetischer Administrator erhält eine Benachrichtigung. Beobachter sorgen dafür, dass das alles leise geschieht, genau wie ein echter Ninja.


Danke fürs Lesen! Ich hoffe, dass dies einige neue Ideen für Ihre Projekte hervorgebracht hat. Wenn Sie daran interessiert sind, qualitativ hochwertige Entwicklung zum Leben zu erwecken, können Sie sich gerne an uns wenden – ich würde mich gerne mit Ihnen vernetzen und herausfinden, wie wir dies verwirklichen können.

Das obige ist der detaillierte Inhalt vonLaravel Observers: Die stillen Ninjas Ihres Anwendungslebenszyklus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage