Existe alguma lista completa de eventos no Magento 2? Estou à procura de algo como Magento Events Cheat Sheet (1.9)
event-observer
magento2
mbalparda
fonte
fonte
Respostas:
Eu montei uma lista de eventos Magento 2 usando
A lista é dividida em 2 partes, uma para eventos estáticos e outra para dinâmica.
A partir daqui , eventos estáticos são todos aqueles definidos com o nome completo do evento, como:
Eventos dinâmicos são todos aqueles definidos com nome de evento buscado dinamicamente, em tempo de execução, como:
A lista está em uma planilha para uma melhor leitura. Deixei duas linhas após a partida para entender melhor o contexto do evento.
A mesma lista pode ser encontrada pesquisando no repositório oficial do Magento 2 por
_eventManager->dispatch
fonte
sales_order_save_after
por exemplo, que é muito importante para a minha tarefa atual, está ausente e, quando você pesquisar no repositório Magento 2, notará que não existedispatch
: github.com/magento/magento2/… ainda não tenho idéia como esses eventos são despachados, mas seria ótimo incluí-los na lista!sales_order_save_after
(apenas como um exemplo) não aparece na lista (e na pesquisa) e também não parece um evento dinâmico. E então eu estava pensando se e como seria possível incluir esses eventos para obter uma lista mais completa. E, obviamente, só estou falando sobre o Magento 2sales_order_save_after
é um evento do Magento 2, até onde eu sei.Obviamente, não é uma boa prática, mas estou fornecendo um link que cumpriu os eventos importantes no Magento2
http://cyrillschumacher.com/magento2-list-of-all-dispatched-events/
Claro que a lista de eventos está incompleta, como se você tivesse trabalhado com o Magento 1.x, a lógica de envio de eventos é mantida.
lib/internal/Magento/Framework/Model/AbstractModel.php
Carregar eventos antes e depois de um modeloSalvar eventos anteriores e posteriores de um objeto de modelo
Excluindo um objeto
Limpando um objeto
Despacho do controlador
lib / internal / Magento / Framework / App / Ação / Action.php
Eventos de renderização de layout de front-end
Coleções de Modelos
lib / internal / Magento / Framework / Modelo / ResourceModel / Db / Collection / AbstractCollection.php
Existem muitos eventos desse tipo, e é uma combinação de eventos gerados explícita e implicitamente no Magento2.
fonte
As respostas acima funcionam perfeitamente, mas às vezes você precisa saber quais eventos são lançados em um carregamento de página específico e a ordem em que são lançados.
Portanto, aqui está a melhor maneira (na minha opinião, de saber isso), use xDebug e defina um ponto de interrupção na linha 56 da classe
Magento\Framework\Event\Manager
(está nalib
pasta e não naapp
pasta).No seu depurador, diga para "Avaliar e registrar" a
$eventName
variável e observe todos os eventos sendo exibidos no console enquanto você carrega a página.Também recomendo desabilitar a opção "Suspender", pois pode haver centenas de eventos lançados; talvez seja necessário deixá-lo ativado para que o primeiro ponto de interrupção seja atingido e você pode removê-lo.
Por que eu acho que essa é a melhor maneira de obter todos os eventos despachados em um carregamento de página é porque isso também mostrará todos os eventos despachados pelos controladores. Cada controlador envia eventos antes e depois com nomes compostos contendo o FullActionName, RouteName e o padrão pós-distribuição. Veja a
Framework\App\Action
classe no método dispatch () .fonte
É difícil conhecer o evento em uma página específica. Assim, você pode tentar este código para rastrear os eventos que estão sendo chamados e usar o melhor para suas necessidades
adicione este código abaixo do nome do evento
Você pode verificar a lista em
<magentoroot>/var/log/events.log
fonte
Você pode conferir abaixo o link dos eventos https://github.com/matinict/Magento-2-Events
Eu sofro que pessoas diferentes compartilhem eventos diferentes, mas nenhuma precisão perdi meu tempo, finalmente, apenas truques vão para o seu fornecedor de magento 2, verifique etc / event.xml
fonte