This is common when referencing a missing helper. In many cases the class name itself is malformed or your shortname referencing it is incorrect, which is why Magento is looking for it in the path Mage_Giftcards_Helper_Data
(see example 1 below). For the following examples I have set up a module called MyCompany_MyModule
.
These are just a few of the many ways you can go awry with defining helpers:
Incorrect helper class alias:
I reference my helper as:
$helper = Mage::helper('mycompany');
I get the error:
Fatal error: Class 'Mage_Mycompany_Helper_Data' not found
What went wrong?
My helper class alias is defined as mymodule
:
<helpers>
<mymodule>
<class>MyCompany_MyModule_Helper</class>
</mymodule>
</helpers>
Changing my shortcode to Mage::helper('mymodule')
produced the desired result.
Malformed class name
I reference my helper (correctly this time):
$helper = Mage::helper('mymodule');
I receive:
Fatal error: Class 'MyCompany_MyModule_Helper_Data' not found
What went wrong?
My class definition was missing "_Data":
class MyCompany_MyModule_Helper extends Mage_Core_Helper_Abstract
{
}
Helper/Custom:
This is similar to what happens when you try to refer to a helper class within a file not named "Data.php".
I reference my helper as:
$helper = Mage::helper('custom');
My module helper path was defined as:
<helpers>
<mymodule>
<class>MyCompany_MyModule_Helper</class>
</mymodule>
</helpers>
I have a class file in app/code/local/MyCompany/MyModule/Helper/Custom.php
I get the error:
Fatal error: Class 'Mage_Custom_Helper_Data' not found
What went wrong?
You need to specify other helper classes in a particular module as sub-paths to your module helper's shortname. This is similar to how blocks and models work - but at the topmost level there is no subfolder.
I fix this error by referencing my Custom.php helper class file as such:
$helper = Mage::helper('mymodule/custom');
Mage
is deprecated in Magento2.
Magento2, not using factory Patten types like Mage::getModel ,Mage::getsingleton() etc
It now uses the class nameSpace concept
To learn more about how to use ObjectManager in Magento 2, checkout these links:
Best Answer
Check if the
phar.so
extension is present in your PHP installation. It has to be enabled in your php.ini file.If it is not, you can either change your php.ini file, or should be able to call n98-magerun like this:
php -d extension=phar.so n98-magerun.phar