In this post I am going to explain how to get module, controller, action and route name in Magento 2.

1. Using Dependency Injection

Add below code snippet in Block class.

protected $_request;
 
public function __construct( 
	\Magento\Framework\View\Element\Template\Context $context, 
	\Magento\Framework\App\Request\Http $request, 
	array $data = [] 
) 
{
	$this->_request = $request; 
	parent::__construct($context, $data); 
}

public function getModuleName() 
{ 
	return $this->_request->getModuleName(); 
}

public function getControllerName() 
{
	return $this->_request->getControllerName(); 
}

public function getActionName() 
{
	return $this->_request->getActionName(); 
}

public function getRouteName() 
{
	return $this->_request->getRouteName(); 
}

public function getControllerModule() 
{
	return $this->_request->getControllerModule(); 
}

public function getFullActionName() 
{
	return $this->_request->getFullActionName(); 
}

 

Add below code snippet in template file.

echo $block->getModuleName() . '<br />';
echo $block->getControllerName() . '<br />';
echo $block->getActionName() . '<br />';
echo $block->getRouteName() . '<br />';
echo $block->getFullActionName() . '<br />';
echo $block->getControllerModule() . '<br />';

 

2. Using Object Manager

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
  
$request = $objectManager->get('\Magento\Framework\App\Request\Http');

echo $request->getModuleName() . '<br />';
echo $request->getControllerName() . '<br />';
echo $request->getActionName() . '<br />';
echo $request->getRouteName() . '<br />';
echo $request->getFullActionName() . '<br />';
echo $request->getControllerModule() . '<br />';

Thats it. Enjoy Magento 2!!