Magento: How to get controller, module, action and router name?

You can easily get controller name, action name, router name and module name in any template file or class file.

IN TEMPLATE FILES

$this->getRequest() can be used in template (phtml) files.

Here is the code:


/**
 * get Controller name
 */
$this->getRequest()->getControllerName();

/**
 * get Action name, i.e. the function inside the controller
 */
$this->getRequest()->getActionName();

/**
 * get Router name
 */
$this->getRequest()->getRouteName();

/**
 * get module name
 */
$this->getRequest()->getModuleName();

/**
 * get namespace & module name
 * for example, if you are in checkout page 
 * then, this will return Mage_Checkout
 */
$this->getRequest()->getControllerModule();
`

IN CLASS FILES

Here is the code:


/**
 * get Controller name
 */
Mage::app()->getRequest()->getControllerName();

/**
 * get Action name, i.e. the function inside the controller
 */
Mage::app()->getRequest()->getActionName();

/**
 * get Router name
 */
Mage::app()->getRequest()->getRouteName();

/**
 * get module name
 */
Mage::app()->getRequest()->getModuleName();

/**
 * get namespace & module name
 * for example, if you are in checkout page 
 * then, this will return Mage_Checkout
 */
Mage::app()->getRequest()->getControllerModule();
`

The above functions (getControllerName, getActionName, getRouteName, getModuleName) are present in the class Mage_Core_Model_Url.

You can explore all requests with print_r.


echo "<pre>"; print_r(Mage::app()->getRequest());	

Hope this helps. Thanks.