Czy w Magento 2 jest jakaś pełna lista wydarzeń? Szukam czegoś takiego jak Ściągawka Magento Events (1.9)
event-observer
magento2
mbalparda
źródło
źródło
Odpowiedzi:
Zestawiłem listę zdarzeń Magento 2 za pomocą
Lista jest podzielona na 2 części, jedną dla zdarzeń statycznych i jedną dla dynamiki.
Od tutaj , imprezy statyczne są te wszystkie zdarzenia zdefiniowane z pełną nazwą zdarzeń takich jak:
Zdarzenia dynamiczne to wszystkie zdarzenia zdefiniowane za pomocą dynamicznie w czasie wykonywania pobranej nazwy zdarzenia, takie jak:
Lista znajduje się w arkuszu kalkulacyjnym dla lepszego czytania. Zostawiłem 2 linie po meczu, aby lepiej zrozumieć kontekst wydarzenia.
Tę samą listę można znaleźć w oficjalnym repozytorium Magento 2 dla
_eventManager->dispatch
źródło
sales_order_save_after
przykład brakuje wydarzenia, które jest bardzo ważne dla mojego obecnego zadania, a podczas przeszukiwania repozytorium Magento 2 zauważysz, że nie madispatch
go wcale : github.com/magento/magento2/... Nie mam jeszcze pojęcia jak te wydarzenia są wysyłane, ale dobrze byłoby umieścić je na liście!sales_order_save_after
(tak jak w jednym przykładzie) nie pojawia się na liście (i wyszukiwaniu), a także nie wygląda jak wydarzenie dynamiczne. A potem zastanawiałem się, czy i jak można uwzględnić takie wydarzenia, aby uzyskać bardziej kompletną listę. I oczywiście mówię tylko o Magento 2sales_order_save_after
to wydarzenie Magento 2, o ile wiem.Oczywiście nie jest to dobra praktyka, ale zapewniam jedno łącze, które spełniło ważne wydarzenia w Magento2
http://cyrillschumacher.com/magento2-list-of-all-dispched-events/
Oczywiście lista wydarzeń jest niekompletna, ponieważ jeśli pracujesz z Magento 1.x, logika wysyłania zdarzeń jest zachowana
lib/internal/Magento/Framework/Model/AbstractModel.php
Załaduj przed i po zdarzeniach modeluZapisz przed i po zdarzeniach obiektu modelowego
Kasowanie obiektu
Czyszczenie obiektu
Wysyłka kontrolera
lib / internal / Magento / Framework / App / Action / Action.php
Układ renderowania zdarzeń interfejsu użytkownika
Kolekcje modeli
lib / internal / Magento / Framework / Model / ResourceModel / Db / Collection / AbstractCollection.php
Istnieje wiele takich zdarzeń i jest to połączenie zdarzeń generowanych jawnie i niejawnie w Magento2
źródło
Odpowiedzi przede wszystkim działają świetnie, ale czasami musisz wiedzieć, jakie zdarzenia są generowane przy ładowaniu określonej strony i w jakiej kolejności.
Jest więc najlepszy sposób (moim zdaniem, aby to wiedzieć), użyj xDebug i ustaw punkt przerwania w linii 56 w klasie
Magento\Framework\Event\Manager
(to jest wlib
folderze, a nie wapp
folderze).W swojej debuggera po prostu powiedzieć jej „Ocenić i log” na
$eventName
zmienną i oglądać wszystkie zdarzenia wyświetlane w konsoli, jak załadować stronę.Poleciłbym również wyłączenie opcji „Zawieś”, ponieważ może być wyrzuconych setki zdarzeń, może być konieczne pozostawienie tej opcji włączonej dla pierwszego punktu przerwania, a następnie usunięcie go.
Myślę, że to najlepszy sposób na wywołanie wszystkich zdarzeń przy ładowaniu strony, ponieważ pokaże to również wszystkie zdarzenia, które są wywoływane przez kontrolery. Każdy kontroler wywołuje zdarzenia przed i po utworzeniu nazw zawierających FullActionName, RouteName i domyślny postdispatch. Zobacz
Framework\App\Action
klasę pod metodą dispatch () .źródło
Jej trudno dostać zdarzenie wiedzieć na stronie konkretnego. Możesz więc wypróbować ten kod, aby śledzić wywoływane zdarzenia i użyć najlepszego z nich dla swoich potrzeb
dodaj ten kod pod nazwą wydarzenia
Możesz sprawdzić listę w
<magentoroot>/var/log/events.log
źródło
Możesz sprawdzić poniższy link wydarzeń https://github.com/matinict/Magento-2-Events
Cierpię na to, że różni ludzie dzielą różne wydarzenia, ale moja dokładność nie straciła czasu. To tylko sztuczki, przejdź do testu sprzedawcy magento 2 itp. / event.xml, mam nadzieję, że może to być pomocne dla programisty
źródło