Subscriber - getSubscribedEvents - Events herausfinden

Moin @mdsw‍,

nicht mehr alles, was du in SW5 mit Events lösen musstest, muss nun in SW6 auch über Events geschehen. Viel läuft über das Decorator Pattern, viel über Tagged Services.
Das hängt also stark davon ab, was du zu erreichen versuchst.

Ich versuche mal deine Fragen zu beantworten:

  1. Es gibt ganze Klassen, die nur alle möglichen Events einer Entität auflisten, und es gibt einzelne Klassen, die ein Event selbst darstellen.
    Die Ersteren findest du, wenn du im Code nach “@Event” suchst. Hier habe ich die Suche einmal für dich in GitHub ausgeführt.
    Die Letzteren findest du, indem du nach “extends NestedEvent” oder “extends Event” suchst. Auch hier und hier einmal die Suche dazu.
  2. Im Zusammenhang mit der Antwort aus  1.:  Wenn du dir das Suchergebnis anschaust, siehst du, dass jedes Event einer Entität mit der @Event Annotation markiert ist. Diese zeigt auch an, wo das Event genutzt wird, in deinem Fall zum Beispiel in der Klasse EntityLoadedEvent. Hinter der Konstante “PRODUCT_LOADED_EVENT” steckt ja der String “product.loaded”. In der verlinkten Zeile siehst du, dass ein Event hier nach dem Muster “.loaded” gesucht wird. Heißt: Die werden dynamisch pro Entität (Produkte, Kunden, Kategorien, …) ausgeführt.

    Du hast aber Recht: Dieses Event wird auch in der Administration ausgeführt. Immer dann, wenn eine Produkt-Entität geladen wird. Das passiert sowohl in der Administration, als auch in der Storefront und der API.
  3. Es gibt, wie oben beantwortet, Klassen, die ein Event selbst darstellen. Diese verfügen dann über eine “NAME” Konstante, die den eigentlichen Namen des Events beinhalten. So auch in diesem Fall.
  4. Fürs Listing: NavigationPageLoadedEvent. Wegen der Storefront bin ich mir gerade nichz ganz sicher, aber das dürfte das hier sein: StorefrontRenderEvent

Hilft dir das irgendwie weiter?

Gruß,
Patrick  Shopware

2 „Gefällt mir“