Magento Helper Class Not Found Error Magento Helper Class Not Found Error xml xml

Magento Helper Class Not Found Error


If you have compilation enabled, trying disabling or re-compiling in System, Tools, Compilation.

If you can't get into the admin interface but have SSH access you can disable it there with:

php -f shell/compiler.php -- disablephp -f shell/compiler.php -- clearphp -f shell/compiler.php -- state

The final output should appear like:

Compiler Status:          DisabledCompilation State:        Not CompiledCollected Files Count:    0Compiled Scopes Count:    0


Even if you yourself don't use helper, Magento admin does. That's why you should always include Data helper in your extensions. So the following code in your Helper/Data.php

class Package_Test_Helper_Data extends Mage_Core_Helper_Abstract{}

and

<global>    <helpers>        <test>            <class>Package_Test_Helper</class>        </test>    </helpers></global>

in your config.xml should be enough.


To expand on the answer by @alexei-yerofeyev there are a few places that this can bite you.

Let's say that you define your helper like this:

<helpers>    <package_test>        <class>Package_Test_Helper</class>    </package_test></helpers>

You may create an email template like this:

<template>    <email>        <test_email module="package_test">            <label>Test Email</label>            <file>package/test_email.html</file>            <type>html</type>        </test_submission>    </email></template>

In this situation, <package_test> and module="package_test" need to match exactly including capitalization.

The same goes for code that uses your helper, like this:

Mage::helper('package_test')->something();

While this is typically in the [package]_[module] format, it's not always the case. You might come across a module Company_Widget with a helper called cmp_widg and you'll need to match that helper name.