Gibt es eine vollständige Liste der Ereignisse in Magento 2? Ich suche nach etwas wie Magento Events Cheat Sheet (1.9)
event-observer
magento2
mbalparda
quelle
quelle
Antworten:
Ich habe eine Liste von Magento 2-Ereignissen mit zusammengestellt
Die Liste ist in zwei Teile unterteilt, einen für statische Ereignisse und einen für Dynamik.
Von hier aus sind statische Ereignisse alle Ereignisse, die mit dem vollständigen Ereignisnamen wie folgt definiert sind:
Dynamische Ereignisse sind alle Ereignisse, die mit dem dynamisch zur Laufzeit abgerufenen Ereignisnamen definiert sind:
Die Liste befindet sich zur besseren Lesbarkeit in einer Tabelle. Ich habe nach dem Match 2 Zeilen hinterlassen, um den Event-Kontext besser zu verstehen.
Dieselbe Liste kann auch im offiziellen Magento 2-Repo nach gesucht werden
_eventManager->dispatch
quelle
sales_order_save_after
zum Beispiel für meine aktuelle Aufgabe ziemlich wichtig ist, fehlt und wenn Sie das Magento 2-Repo durchsuchen, werden Sie feststellen, dass es überhaupt kein Ereignis dafür gibtdispatch
: github.com/magento/magento2/… Ich habe noch keine Ahnung wie diese Ereignisse ausgelöst werden, aber es wäre großartig, sie in die Liste aufzunehmen!sales_order_save_after
(nur als ein Beispiel) nicht in der Liste (und der Suche) auftaucht und auch nicht wie ein dynamisches Ereignis aussieht. Und dann überlegte ich, ob und wie es möglich sein könnte, solche Ereignisse einzubeziehen, um eine vollständigere Liste zu erhalten. Und natürlich spreche ich nur von Magento 2,sales_order_save_after
einem Magento 2-Event, soweit ich das beurteilen kann.Offensichtlich keine gute Praxis, aber ich biete einen Link, der die wichtigen Ereignisse in Magento2 erfüllt hat
http://cyrillschumacher.com/magento2-list-of-dispatched-events/
Natürlich ist die Ereignisliste unvollständig, als ob Sie mit Magento 1.x gearbeitet hätten, die Ereignisauslöselogik bleibt erhalten
lib/internal/Magento/Framework/Model/AbstractModel.php
Laden vor und nach Ereignissen eines ModellsSpeichern Sie vor und nach Ereignissen eines Modellobjekts
Ein Objekt löschen
Ein Objekt löschen
Controller Versand
lib / internal / Magento / Framework / App / Action / Action.php
Ereignisse beim Rendern des Frontend-Layouts
Sammlungen von Modellen
lib / internal / Magento / Framework / Model / ResourceModel / Db / Collection / AbstractCollection.php
Es gibt viele solcher Ereignisse und es ist eine Kombination aus explizit und implizit erzeugten Ereignissen in Magento2
quelle
Die Antworten funktionieren vor allem gut, aber manchmal müssen Sie wissen, welche Ereignisse auf einer bestimmten Seite geladen werden und in welcher Reihenfolge sie ausgelöst werden.
Hier ist also der beste Weg (meiner Meinung nach, um dies zu wissen), xDebug zu verwenden und einen Haltepunkt in Zeile 56 der Klasse zu setzen
Magento\Framework\Event\Manager
(er befindet sich imlib
Ordner, nicht imapp
Ordner).Sagen Sie in Ihrem Debugger einfach, dass die Variable ausgewertet und protokolliert
$eventName
werden soll, und dass alle Ereignisse in der Konsole angezeigt werden, während Sie die Seite laden.Ich würde auch empfehlen, die "Suspend" -Option zu deaktivieren, da möglicherweise Hunderte von Ereignissen ausgelöst werden. Möglicherweise müssen Sie sie aktiviert lassen, damit der erste Haltepunkt erreicht wird, und dann können Sie sie entfernen.
Ich denke, dies ist der beste Weg, um alle Ereignisse beim Laden einer Seite auszulösen, da hier auch alle Ereignisse angezeigt werden, die von Controllern ausgelöst wurden. Jeder Controller löst Ereignisse am vor und nach dem mit zusammengesetzten Namen aus, die den FullActionName, den RouteName und den Standard-Post-Dispatch-Namen enthalten. Siehe die
Framework\App\Action
Klasse unter der Methode dispatch () .quelle
Es ist schwierig , die Veranstaltung auf einer bestimmten Seite bekannt zu machen. Sie können diesen Code also verwenden, um die aufgerufenen Ereignisse zu verfolgen und das für Ihre Anforderungen am besten geeignete Ereignis zu verwenden
Fügen Sie diesen Code unter dem Ereignisnamen ein
Sie können die Check - Liste in
<magentoroot>/var/log/events.log
quelle
Sie können unter dem Link der Ereignisse https://github.com/matinict/Magento-2-Events überprüfen
Ich leide, dass verschiedene Leute unterschiedliche Ereignisse teilen, aber keine Genauigkeit verloren meine Zeit. Endlich sind es nur Tricks, die Sie zu Ihrem Magento 2-Vendor-Check etc / event.xml geschickt haben
quelle