How To Create Events In Magento 2

Steps to create events in Magento 2

Create Dispatch event

Directory

app/code/VendorName/ModuleName/Controller/Index/Example.php

Content for Example.php

<?php

namespace VendorName\ModuleName\Controller\Index;

class Example extends \Magento\Framework\App\Action\Action
{

	public function execute()
	{
		$textDisplay = new \Magento\Framework\DataObject(array('text' => 'Welcome To TheOnlineHelper'));
		$this->_eventManager->dispatch('vendorname_modulename_display_text', ['toh_text' => $textDisplay]);
		echo $textDisplay->getText();
		exit;
	}
}

 

Create events.xml

Directory

app/code/VendorName/ModuleName/etc/frontend/events.xml

Content for events.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="vendorname_modulename_display_text">
        <observer name="toh_display_text" instance="VendorName\ModuleName\Observer\DisplayText" />
    </event>
</config>

Create Observer Class

Directory

app/code/VendorName/ModuleName/Observer/DisplayText.php

Content for DisplayText.php

<?php

namespace VendorName\ModuleName\Observer;

class DisplayText implements \Magento\Framework\Event\ObserverInterface
{
	public function execute(\Magento\Framework\Event\Observer $observer)
	{
		$displayText = $observer->getData('mp_text');
		echo $displayText->getText() . " - Event </br>";
		$displayText->setText('Execute event successfully.');

		return $this;
	}
}

Flush or Clean Cache

To clean cache, run the following command

php bin/magento cache:clean

if you are looking for Magento Developer, visit Magento Development Agency.