Momentan verwende ich Beobachter, um nach der Erstellung und Aktualisierung meiner Modelle einige Dinge zu erledigen.
Ich möchte meine App aktualisieren, indem ich sie in Echtzeit mit mache laravel-echo , aber ich finde keine Dokumentation über die Verwendung von Laravel-Echo in Kombination mit Beobachtern (anstelle von Ereignissen).
Sie können Ereignisse und ihre Broadcast-Funktionalität in Kombination mit ihren jeweiligen Listenern verwenden, um diese Funktionalität zu erhalten, aber ich mag den saubereren Code von Beobachtern (weniger "Magie").
Wenn ich mir den Code des Laravel-Frameworks anschaue, kann ich sehen, dass das Observable immer noch eloquente Ereignisse verwendet, also vermute ich, dass es einen Weg gibt, diese zu übertragen.
Also meine Frage: Gibt es eine Möglichkeit, eloquente Ereignisse mit Hilfe von , ohne einzelne Events zu erstellen oder Broadcast-Statements bei jedem Event manuell hinzuzufügen?
Interessante Frage! Wir können einen wiederverwendbaren Beobachter für allgemeine Zwecke erstellen, der Ereignisse überträgt, die von den beobachteten Modellen ausgelöst werden. Dadurch entfällt die Notwendigkeit, für jedes Szenario individuelle Ereignisse zu erstellen, und wir können weiterhin vorhandene Beobachter verwenden:
%Vor%Weisen Sie den Beobachter dann einfach an, alle Modelle zu beobachten, für die Sie Ereignisse nach Echo senden müssen:
%Vor%Wie Sie wissen, können mehrere Beobachter das gleiche Modell beobachten. Dies ist ein sehr einfaches Beispiel. Mit diesem Muster können wir viele schöne Dinge tun. Zum Beispiel könnten wir deklarieren, welche Attribute wir für jedes Modell ausstrahlen möchten, und das Ereignis so konfigurieren, dass alle Filter herausgefiltert werden, die das Modell nicht explizit zulässt. Jedes Modell kann auch den Kanal, zu dem das Ereignis veröffentlicht, oder den Typ der Ereignisse, die es senden soll, deklarieren.
Alternativ könnten wir das Ereignis von Ihren vorhandenen Beobachtern ausstrahlen, aber es klingt so, als wollten Sie vermeiden, diese Anweisungen zu jedem einzelnen hinzuzufügen.
Tags und Links laravel observers laravel-echo