How to Call Helper Function in Magento 2
Learn how to create and call a helper function in Magento 2 using best practices like Dependency Injection.
Overview
In Magento 2, helper classes are used to store reusable utility functions. These helpers can be called in controllers, models, blocks, and templates.
Step-by-Step Implementation
- Create a helper class in your module.
- Define your custom function inside the helper.
- Inject the helper using Dependency Injection.
- Call the helper function where needed.
Step 1: Create Helper Class
namespace Vendor\Module\Helper;
use Magento\Framework\App\Helper\AbstractHelper;
class Data extends AbstractHelper
{
public function getCustomMessage()
{
return "Hello from Helper!";
}
}
Step 2: Inject Helper in Class
namespace Vendor\Module\Controller\Index;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Vendor\Module\Helper\Data as HelperData;
class Index extends Action
{
protected $helper;
public function __construct(
Context $context,
HelperData $helper
) {
parent::__construct($context);
$this->helper = $helper;
}
public function execute()
{
echo $this->helper->getCustomMessage();
}
}
Step 3: Call Helper in PHTML
/** @var \Vendor\Module\Helper\Data $helper */
$helper = $this->helper('Vendor\Module\Helper\Data');
echo $helper->getCustomMessage();
Best Practices
- Use Dependency Injection instead of Object Manager.
- Keep helper functions simple and reusable.
- Avoid adding business logic in helpers; use models/services instead.
Important Notes
- Helpers are globally accessible utility classes.
- Use them for common functions like formatting, config values, etc.
- Clear cache after changes:
php bin/magento cache:flush