Dove posso trovare un elenco completo degli eventi Magento?
-
16-10-2019 - |
Domanda
So che Magento ha un gancio-come eventi di sistema chiamato. Qualcuno ha un elenco completo o di uno script che può essere utilizzato per determinare quali eventi possono essere chiamati?
Soluzione
non è un elenco di tutti gli eventi di Magento, perché la maggior parte degli eventi sono chiamati in modo dinamico.
Se mi chiedete, conoscendo questi eventi chiave (e le conseguenze) è un buon punto di partenza (accanto all'elenco da nick):
Ogni oggetto esteso da Mage_Core_Model_Abstract invia un sacco di eventi in giro per il caricamento, salvataggio ed eliminazione:
app/code/core/Mage/Core/Model/Abstract.php:255
Mage::dispatchEvent($this->_eventPrefix.'_load_before', $params);
// e.g. sales_order_load_before, checkout_cart_load_before
Per esempio, per aggiungere i controlli, dopo che l'oggetto è stato caricato
app/code/core/Mage/Core/Model/Abstract.php:267
Mage::dispatchEvent($this->_eventPrefix.'_load_after', $this->_getEventData());
// e.g. cms_page_load_after
per aggiungere i dati aggiuntivi per l'oggetto prima che venga salvato
app/code/core/Mage/Core/Model/Abstract.php:391
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
// e.g. catalog_product_save_before
Per salvare altri modelli dopo il "padre" è stato salvato
app/code/core/Mage/Core/Model/Abstract.php:466
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
// e.g. catalogrule_rule_save_after
su pulito, prima che il modello viene eliminato
app/code/core/Mage/Core/Model/Abstract.php:501
Mage::dispatchEvent($this->_eventPrefix.'_delete_before', $this->_getEventData());
// e.g. store_delete_before
su pulito, prima che il modello viene eliminato - o forse dopo? Sei qui ancora nella transazione!
app/code/core/Mage/Core/Model/Abstract.php:529
Mage::dispatchEvent($this->_eventPrefix.'_delete_after', $this->_getEventData());
// e.g. website_delete_after
Se si vuole essere sicuri che il soggetto è stato cancellato
app/code/core/Mage/Core/Model/Abstract.php:541
Mage::dispatchEvent($this->_eventPrefix.'_delete_commit_after', $this->_getEventData());
// e.g. customer_delete_commit_after
Le collezioni estese da Mage_Core_Model_Resource_Db_Collection_Abstract hanno un due eventi generici troppo:
Ad esempio: per modificare il codice SQL per caricare la collezione:
app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:588
Mage::dispatchEvent($this->_eventPrefix.'_load_before', array(
$this->_eventObject => $this
));
// e.g. sales_order_status_history_collection_load_before
Ad esempio: per aggiungere dati aggiuntivi agli oggetti:
app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:637
Mage::dispatchEvent($this->_eventPrefix.'_load_after', array(
$this->_eventObject => $this
));
// e.g. sales_order_shipment_collection_load_after
Altri suggerimenti
Fare la grep 'Mage::dispatchEvent' app/ -rsn
sanguinosa Questo vi fornirà un elenco di eventi specifici per la vostra installazione come l'elenco degli eventi può variare a seconda della versione di Magento, le personalizzazioni e le estensioni installate.
Io uso questo come un bel foglietto http: //www.nicksays. co.uk/magento-events-cheat-sheet-1-7/. Ha tutti gli eventi che che possono essere chiamati a 1.7.
So che questa domanda è stato risposto che solo aggiungere la mia strada qui:
- preparo pagina che voglio osservare nel browser
- I aperta app / Mage.php
- per
public static function dispatchEvent
(ln: ~ 446) In principio aggiungo//Mage::log($name, null, 'events.log', true);
- decommentare quella linea,
- pagina di aggiornamento che sono in
- Commento ancora una volta che la linea
Poi si apre var / log / events.log (~ 40kb) e vedere un intero lotto eventi a solo quella pagina! :)
risposta è già stata accettata ma Ill inviare la mia risposta in ogni caso per il futuro:
Se si desidera visualizzare l'elenco degli eventi che Magento ha avete 3 opzioni:
1) Google per essa, ci sono un sacco di persone che hanno compilato una lista di eventi Magento
2) Creare un modulo che ganci sull'evento controller_action_predispatch
che è l'evento che si chiama prima di qualsiasi altro evento viene chiamato. All'interno di questo modulo è possibile registrare alcuni eventi che vengono inviati:
Aggiungere la seguente sulla config.xml
<events>
<controller_action_postdispatch>
<observers>
<controller_action_after>
<class>yourmodule/observer</class>
<method>hookToControllerActionPostDispatch</method>
</controller_action_after>
</observers>
</controller_action_postdispatch>
</events>
E dentro la nomemodulo / Modello / Observer:
public function hookToControllerActionPostDispatch($observer) {
Mage::log($observer->getEvent()->getControllerAction()->getFullActionName());
}
È possibile che questo sarebbe registrare ogni evento che viene inviato ...
3) Se si dispone di accesso SSH è possibile eseguire il seguente comando per avere una panoramica di tutti gli eventi (e le loro file dove vengono spediti):
cd /path/to/<magento-root>
grep -nris 'dispatchEvent' app/code/
Sto usando Magento Developer Toolbar che ha bella caratteristica di eventi che mostrano che possono essere osservati sulla pagina caricata.
Qui è possibile visualizzare la maggior parte di eventi già esistenti: http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
Ho fatto un grep sul core modulo Mage di Magento, e rispettato un elenco,
esaustiva lista di Magento Eventi
P.S. Come fuori punta, può contenere gli eventi che sono all'interno di funzioni deprecate di Magento, in modo da controllare il file di riferimento e la linea prima della loro attuazione.
Apri per i suggerimenti!
grep "::dispatchEvent" -R * | sort -u
grep "eventPrefix" -R * | sort -u
Il comando grep precedente quotata renderebbe duplicati (tanto) e non comprende l'elenco dei prefissi di eventi che sarebbero necessarie per comprendere i nomi di eventi generati in modo dinamico. Questi comandi rendono entrambe le liste con i valori solo univoci. Si potrebbe aggiungere il flag -n come l'altra risposta grep e ottenere il numero di riga suppongo. Ma la questione non ha chiesto dove nel codice erano tutti. ~ _ ~
C'è un cheat sheet qui anche http: // mikebywaters .wordpress.com / 2012/07/23 / Magento-evento-osservatore-list /
http://www.magentocommerce.com/wiki/5_-_modules_and_development/ di riferimento / magento_events
Qui puoi trovare l'elenco completo degli eventi osservatori.
vedi questi cheat sheet
https://www.nicksays.co.uk / Magento-eventi-cheat-sheet-1-8 / http://rabee.me/codes/magento/cheatsheet/1.9/
Sarà utile a voi.
Potete trovare tutta la lista dei backend + frontend eventi sul singolo collegamento
http://www.magentocommerce.com/wiki/5_-_modules_and_development/ di riferimento / magento_events
Se qualcuno mai ha bisogno di un elenco aggiornato, sto cercando di mantenere questo fino ad oggi:
https://gist.github.com/digitalpianism/d8157c6b492238af2ed7809e5e3a134e
È possibile trovare tutti gli eventi Magento-1x seguendo URL. https://magento2.atlassian.net/ wiki / display / m1wiki / Magento + 1.x + Eventi + di riferimento