Existe-t-il une liste complète des événements dans Magento 2? Je recherche quelque chose comme Magento Events Cheat Sheet (1.9)
event-observer
magento2
mbalparda
la source
la source
Réponses:
J'ai compilé une liste d'événements Magento 2 en utilisant
La liste est divisée en 2 parties, une pour les événements statiques et une pour la dynamique.
À partir d' ici , les événements statiques sont tous ces événements définis avec un nom d'événement complet comme:
Les événements dynamiques sont tous ces événements définis avec dynamiquement, lors de l'exécution, un nom d'événement récupéré comme:
La liste est dans une feuille de calcul pour une meilleure lecture. J'ai laissé 2 lignes après le match pour une meilleure compréhension du contexte de l'événement.
La même liste peut être trouvée en cherchant dans le dépôt officiel de Magento 2 pour
_eventManager->dispatch
la source
sales_order_save_after
par exemple qui est assez important pour ma tâche actuelle est manquant et lorsque vous recherchez dans le repo de Magento 2, vous remarquerez qu'il n'y en a pasdispatch
du tout: github.com/magento/magento2/… Je n'ai aucune idée encore comment ces événements sont distribués, mais ce serait formidable de les inclure dans la liste!sales_order_save_after
(comme un exemple) n'apparaît pas dans la liste (et la recherche) et il ne ressemble pas non plus à un événement dynamique. Et puis je me demandais si et comment il était possible d'inclure de tels événements pour obtenir une liste plus complète. Et évidemment, je ne parle que de Magento 2,sales_order_save_after
c'est aussi un événement Magento 2, pour autant que je sache.Évidemment, ce n'est pas une bonne pratique, mais je fournis un lien qui a respecté les événements importants de Magento2
http://cyrillschumacher.com/magento2-list-of-all-dispatched-events/
Bien sûr, la liste des événements est incomplète, comme si vous avez travaillé avec Magento 1.x, la logique de répartition des événements est conservée
lib/internal/Magento/Framework/Model/AbstractModel.php
Charger les événements avant et après d'un modèleEnregistrer les événements avant et après d'un objet de modèle
Supprimer un objet
Effacer un objet
Envoi du contrôleur
lib / internal / Magento / Framework / App / Action / Action.php
Événements de rendu de mise en page frontend
Collections de modèles
lib / internal / Magento / Framework / Model / ResourceModel / Db / Collection / AbstractCollection.php
Il existe de nombreux événements de ce type, et il s'agit d'une combinaison d'événements générés explicitement et implicitement dans Magento2
la source
Les réponses fonctionnent avant tout, mais vous devez parfois savoir quels événements sont lancés sur un chargement de page spécifique et l'ordre dans lequel ils sont lancés.
Il y a donc ici le meilleur moyen (à mon avis de le savoir), utilisez xDebug et définissez un point d'arrêt sur la ligne 56 dans la classe
Magento\Framework\Event\Manager
(c'est dans lelib
dossier pas leapp
dossier).Dans votre débogueur, dites-lui simplement «Évaluer et consigner» la
$eventName
variable et regardez tous les événements s'afficher dans la console pendant que vous chargez la page.Je recommanderais également de désactiver l'option "Suspendre" car il peut y avoir des centaines d'événements levés, vous devrez peut-être le laisser allumé pour que le premier point d'arrêt soit atteint, puis vous pouvez le supprimer.
La raison pour laquelle je pense que c'est la meilleure façon d'obtenir tous les événements distribués sur un chargement de page est que cela vous montrera également tous les événements qui sont distribués par les contrôleurs. Chaque contrôleur distribue des événements avant et après avec des noms composés contenant FullActionName, RouteName et le postdispatch par défaut. Voir la
Framework\App\Action
classe sous la méthode dispatch () .la source
Il est difficile de connaître l'événement sur une page spécifique. Vous pouvez donc essayer ce code pour suivre les événements à appeler et utiliser le meilleur pour vos besoins
ajoutez ce code sous le nom de l'événement
Vous pouvez consulter la liste dans
<magentoroot>/var/log/events.log
la source
Vous pouvez vérifier ci-dessous le lien des événements https://github.com/matinict/Magento-2-Events
je souffre que différentes personnes partagent un événement différent mais aucune précision n'a finalement perdu mon temps, ses astuces vont à votre vérification de fournisseur magento 2, etc.
la source