You are probably familiar with a concept of an event whether you are a programmer or not. Basically, the event is an action that occurs in a response of the user interaction such as a user logged in, a user logged out, add to cart etc. And when an event occurs it passes data to observers and the observer runs the logic you have created.
But when there are a thousand lines of code and you want to create a particular event trigger, it becomes difficult to identify what existing events are triggered when you perform any action. To help Magento devs by saving their valuable time and efforts, we came up with a small code that will help you to get a list of events generated when you perform any Action.
To get a list of events we have to perform just two easy steps.
Firstly, we need to create ‘di.xml‘ file inside our extension folder at below path using following code.
app\code\Vendor\Extension\etc\di.xml
1 2 3 4 5 6 |
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <type name="Magento\Framework\Event\ManagerInterface"> <plugin name="list_all_dispatched_event" type="Vendor\Extension\Plugin\ListDispatchedEvents" sortOrder="10" disabled="false"/> </type> </config> |
Now, we need to create on more file ‘ListDispatchedEvents.php‘ inside our extension folder.
app\code\Vendor\Extension\Plugin\ListDispatchedEvents.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php namespace Vendor\Extension\Plugin; class ListDispatchedEvents { public function beforeDispatch($subject, $eventName, array $data = []) { $writer = new \Zend\Log\Writer\Stream(BP . '/var/log/event.log'); $logger = new \Zend\Log\Logger(); $logger->addWriter($writer); $logger->info($eventName); } } |
Tadaa! Your list of events is generated inside an event.log file which resides inside var/log folder. You can use this code anywhere to grab existing events list which triggered when you make any action.
And yes, please hit that stars if this code worked for you or comment down below if you face any issue.
Happy Coding?