¿Hay alguna lista completa de eventos en Magento 2? Estoy buscando algo como Magento Events Cheat Sheet (1.9)
event-observer
magento2
mbalparda
fuente
fuente
Respuestas:
Recopilé una lista de eventos de Magento 2 usando
La lista se divide en 2 partes, una para eventos estáticos y otra para dinámicas.
Desde aquí , los eventos estáticos son todos aquellos eventos definidos con el nombre completo del evento como:
Los eventos dinámicos son todos aquellos eventos definidos con dinámicamente, en tiempo de ejecución, nombre de evento obtenido como:
La lista está en una hoja de cálculo para una mejor lectura. Dejé 2 líneas después del partido para una mejor comprensión del contexto del evento.
La misma lista se puede encontrar buscando en el repositorio oficial de Magento 2 para
_eventManager->dispatch
fuente
sales_order_save_after
Falta el evento, que es bastante importante para mi tarea actual, y cuando busque en el repositorio de Magento 2, notará que no hay nadadispatch
en absoluto: github.com/magento/magento2/ ... Todavía no tengo idea cómo se envían estos eventos, ¡pero sería genial incluirlos en la lista!sales_order_save_after
(solo como un ejemplo) no aparece en la lista (y la búsqueda) y tampoco parece un evento dinámico. Y luego estaba pensando si y cómo podría ser posible incluir tales eventos para obtener una lista más completa. Y obviamente, solo estoy hablando de que Magento 2sales_order_save_after
es un evento de Magento 2, por lo que puedo decir.Obviamente, no es una buena práctica, pero estoy proporcionando un enlace que ha cumplido los eventos importantes en Magento2
http://cyrillschumacher.com/magento2-list-of-all-dispatched-events/
Por supuesto, la lista de eventos está incompleta, como si hubiera trabajado con Magento 1.x, la lógica de envío de eventos se conserva
lib/internal/Magento/Framework/Model/AbstractModel.php
Carga antes y después de eventos de un modeloGuardar antes y después de eventos de un objeto modelo
Eliminar un objeto
Borrar un objeto
Despacho del controlador
lib / internal / Magento / Framework / App / Action / Action.php
Eventos de renderizado de diseño frontend
Colecciones de modelos
lib / internal / Magento / Framework / Model / ResourceModel / Db / Collection / AbstractCollection.php
Hay muchos eventos de este tipo, y es una combinación de eventos generados explícita e implícitamente en Magento2
fuente
Las respuestas sobre todo funcionan muy bien, pero a veces es necesario saber qué eventos se lanzan en una carga de página específica y el orden en que se lanzan.
Entonces, aquí está la mejor manera (en mi opinión para saber esto), use xDebug y establezca un punto de interrupción en la línea 56 en la clase
Magento\Framework\Event\Manager
(está en lalib
carpeta, no en laapp
carpeta).En su depurador, simplemente dígale que "evalúe y registre" la
$eventName
variable y observe cómo se muestran todos los eventos en la consola a medida que carga la página.También recomendaría deshabilitar la opción "Suspender", ya que puede haber cientos de eventos, es posible que deba dejarlo activado para que se alcance el primer punto de interrupción y luego puede eliminarlo.
Por qué creo que esta es la mejor manera de obtener todos los eventos enviados en una carga de página es porque esto también le mostrará todos los eventos enviados por los controladores. Cada controlador distribuye eventos antes y después con nombres compuestos que contienen FullActionName, RouteName y el postdispatch predeterminado. Vea la
Framework\App\Action
clase bajo el método dispatch () .fuente
Es difícil que el evento se conozca en una página específica. Entonces puede probar este código para rastrear los eventos que se llaman y usar el mejor para sus necesidades
agregue este código debajo del nombre del evento
Puedes consultar la lista en
<magentoroot>/var/log/events.log
fuente
Puede consultar el siguiente enlace de eventos https://github.com/matinict/Magento-2-Events
Sufro que diferentes personas compartan diferentes eventos, pero ninguna precisión perdió mi tiempo por fin, solo trucos van a su proveedor de magento 2, etc / event.xml, espero que sea de ayuda para el desarrollador de magento 2
fuente