Ich weiß, dass Magento ein Hook-ähnliches System namens Events hat. Hat jemand eine vollständige Liste oder ein Skript, mit dem bestimmt werden kann, welche Ereignisse aufgerufen werden können?
event-observer
magento-1
benmarks
quelle
quelle
Antworten:
Es gibt keine Liste aller magento-Ereignisse, da die meisten Ereignisse dynamisch benannt werden.
Wenn Sie mich fragen, ist die Kenntnis dieser Schlüsselereignisse (und der Konsequenzen) ein guter Ausgangspunkt (neben der Liste von nick):
Jedes Objekt, das von Mage_Core_Model_Abstract erweitert wurde, löst viele Ereignisse zum Laden, Speichern und Löschen aus:
Zum Beispiel, um Prüfungen hinzuzufügen, nachdem das Objekt geladen wurde
um dem Objekt zusätzliche Daten hinzuzufügen, bevor es gespeichert wird
Um andere Modelle zu speichern, nachdem das "Eltern" gespeichert wurde
bereinigen, bevor das Modell gelöscht wird
aufräumen, bevor das modell gelöscht wird - oder vielleicht nachher? Sie sind hier noch in der Transaktion!
Wenn Sie sicher sein möchten, dass die Entität gelöscht wurde
Die Sammlungen, die von Mage_Core_Model_Resource_Db_Collection_Abstract erweitert wurden, haben auch zwei generische Ereignisse:
Beispiel: So ändern Sie die SQL zum Laden der Auflistung:
Beispiel: So fügen Sie den Objekten zusätzliche Daten hinzu:
quelle
_eventPrefix
Ereignisse für das Modell, der Ereignisse für gezielte Anforderungen, der gelegentlich nützlichen allgemeinenapp/code/core/Mage/Core/Model/App.php
undmage::log($eventName,null,'events.txt',true);
zu derdispatchEvent
Methode. Laden Sie die Seite, die ich beobachten möchte. Lassen Sie dies natürlich nicht so wie es ist und kehren Sie zurück, sobald Ihre Datei var / logs / events.txt erstellt wurde. Dreckig, ja. Schnell ja. :)Verdammt noch
grep 'Mage::dispatchEvent' app/ -rsn
mal ! Hier finden Sie eine Liste der Ereignisse, die für Ihre Installation spezifisch sind. Die Liste der Ereignisse kann je nach Magento-Version, installierten Anpassungen und Erweiterungen variieren.quelle
sales_order_place_after
dies passieren wird, aber es scheint, dass der Aufruf zum Feuern auskommentiert istCheckout/Type/Onepage.php
.Ich benutze dies als einen schönen Spickzettel http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/ . Es hat alle Ereignisse, die in 1.7 aufgerufen werden können.
quelle
Ich weiß, dass diese Frage beantwortet wurde. Ich füge meinen Weg hierher hinzu:
public static function dispatchEvent
(ln: ~ 446) am anfang füge ich hinzu//Mage::log($name, null, 'events.log', true);
Dann öffnest du var / log / events.log (~ 40kb) und siehst eine ganze Menge Ereignisse nur auf dieser Seite! :)
quelle
Die Antwort wurde bereits angenommen, aber ich werde meine Antwort trotzdem für die Zukunft posten:
Wenn Sie die Liste der Ereignisse in Magento anzeigen möchten, haben Sie drei Möglichkeiten:
1) Für Google gibt es eine Menge Leute, die eine Liste von Magento-Ereignissen zusammengestellt haben
2) Erstellen Sie ein Modul,
controller_action_predispatch
das das Ereignis einbindet, das aufgerufen wird, bevor ein anderes Ereignis aufgerufen wird. In diesem Modul können Sie einige Ereignisse protokollieren, die ausgelöst werden:Fügen Sie in config.xml Folgendes hinzu
Und innerhalb des yourmodule / Model / Observer:
Das obige würde jedes Ereignis protokollieren, das ausgelöst wird ...
3) Wenn Sie über SSH-Zugriff verfügen, können Sie den folgenden Befehl ausführen, um eine Übersicht über alle Ereignisse (und deren Dateien, an die sie gesendet werden) zu erhalten:
quelle
controller_action_predispatch
, insbesonderecontroller_front_init_before
. 2) Dieser Ansatz protokolliert einfach nicht jedes Ereignis, das ausgelöst wird. Ist dies ein Tippfehler oder ein unvollständiger Abschnitt?Ich verwende die Magento Developer Toolbar, die eine nette Funktion zum Anzeigen von Ereignissen bietet, die auf geladenen Seiten beobachtet werden können.
quelle
Hier können Sie die meisten vorhandenen Ereignisse anzeigen: http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
quelle
Ich habe ein Grep für das Magier-Kernmodul von Magento durchgeführt und eine Liste befolgt,
Vollständige Liste der Magento-Ereignisse
PS Wie bereits erwähnt, können Ereignisse enthalten sein, die sich in veralteten Funktionen von Magento befinden. Überprüfen Sie daher vor der Implementierung die Datei- und Zeilenreferenz.
Offen für Vorschläge!
quelle
Der zuvor aufgeführte Befehl grep rendert Duplikate (viele) und deckt nicht die Liste der Ereignispräfixe ab, die zum Verständnis der dynamisch generierten Ereignisnamen erforderlich sind. Diese Befehle rendern beide Listen nur mit eindeutigen Werten. Sie könnten das -n-Flag wie die andere grep-Antwort hinzufügen und die Zeilennummer erhalten, nehme ich an. Aber die Frage stellte keine Frage, wo in dem Code sie sich alle befanden. ~ _ ~
quelle
Hier gibt es auch einen Spickzettel http://mikebywaters.wordpress.com/2012/07/23/magento-event-observer-list/
quelle
http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
Hier finden Sie eine vollständige Liste der Beobachterereignisse.
quelle
Beziehen Sie sich auf diese Spickzettel
https://www.nicksays.co.uk/magento-events-cheat-sheet-1-8/ http://rabee.me/codes/magento/cheatsheet/1.9/
Es wird Ihnen helfen.
quelle
Sie finden alle Listen der Backend- und Frontend-Ereignisse unter einem Link
http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
quelle
Wenn jemand jemals eine aktualisierte Liste benötigt, versuche ich, diese auf dem neuesten Stand zu halten:
https://gist.github.com/digitalpianism/d8157c6b492238af2ed7809e5e3a134e
quelle
Sie können alle magento-1x-Ereignisse finden, indem Sie der URL folgen. https://magento2.atlassian.net/wiki/display/m1wiki/Magento+1.x+Events+Reference
quelle