Magento 2: Get controller, module, action and route name

In Magento2 website development, we need to get the current module, controller, action or router name. Magento has many numbers of module, controller, action & router. In this blog, we will show you how to get the name of the current module, controller, action, and route in Magento 2.

Using class

namespace Custom\Module\Controller\Index;

class Index extends \Magento\Framework\App\Action\Action
    protected $request;

    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Framework\App\Request\Http $request
        $this->request = $request;

    public function execute()
        $moduleName = $this->getRequest()->getModuleName();
        $controller = $this->getRequest()->getControllerName();
        $action     = $this->getRequest()->getActionName();
        $route      = $this->getRequest()->getRouteName();

        echo $moduleName."<br/>";
        echo $controller."<br/>";
        echo $action."<br/>";
        echo $route."<br/>";



Using object manager

$objectManager =  \Magento\Framework\App\ObjectManager::getInstance();        
$request = $objectManager->get('\Magento\Framework\App\Request\Http');
echo $request->getRouteName() . '<br />';
echo $request->getModuleName() . '<br />';
echo $request->getControllerName() . '<br />';
echo $request->getActionName() . '<br />';
echo $request->getFullActionName() . '<br />';
echo $request->getControllerModule() . '<br />';