Magento模块已重命名,但Magento一直在寻求旧的帮助程序类

Magento,版本CE 1.4.2,1.5.0.1,1.5.1.0

我必须根据所有配方,config.xml,system.xml等模块/模块/ Mycompany_Mypaymentmodule.xml调整Magento的支付模块,这些都可以正常工作.

但最近,我进行了双重检查并发现了一个错误:
在我的config.xml中,我放了:

<config>
<modules>
    <Mage_Mycompany>
        <version>0.1.0</version>
    </Mage_Mycompany>
</modules>

那是因为最初,该模块应该放在社区文件夹中.
遵循这些准则,我重写了类,xml等等以反映本地代码池.这也很顺利(除了我调试过的错误).

但是,在config.xml中,我重命名了modules-tag,如下所示:

<config>
    <modules>
        <Mycompany_Mypaymentmodule>
        <version>0.1.0</version>
        </Mycompany_Mypaymentmodule>
</modules>

奇怪的是,当我在后端使用付款方式时,Magento现在不断向我询问旧的Helper类文件,导致:

Fatal error: Class ‘Mage_Mycompany_Helper_Data’ not found in path\to\app\Mage.php on line 520

换句话说,Magento不断要求我的旧的,预先重命名的模块的帮助类,当然无处可寻.

我已经在所有文件中进行了广泛的搜索,但是找不到字符串Mage_Mycompany,所以我的猜测是Magento试图从数据库表中加载这个帮助程序类.当然,我已经清除缓存并多次重建所有索引,并删除了所有缓存文件.我几乎检查了所有数据库表,但无济于事.

其次,当我在app / code / community / Mage / Mycompany / Helper / Data.php中手动创建辅助类时,一切顺利,这对我来说听起来很奇怪,因为类本身不应该被调用(因为它永远不会在任何config.xml中提到).

我必须遗漏一些东西,也许类名是动态生成的,但我真的不知道如何避免它或修复它…所以任何帮助都表示赞赏!

最佳答案 当然,第一步是清除缓存.

如果清除缓存不起作用.

第2步:数据助手类用于转换模块的字符串.也就是说,每个数据助手都有一个方法

$helper->__('Translate this symbol');

这将根据该模块的帮助文件翻译一个字符串.

在整个系统中,有几个XML文件可能需要翻译某些节点.语法看起来像这样.

<dhl translate="label" module="usa">
    <label>The Label</label>
</dhl>

在这里,您要告诉magento翻译dhl中包含的“label”节点,并使用usa模块执行此操作.也就是说,使用实例化的帮助程序

$Mage::getModel('usa/data');
//same thing as above, helpers default to data
Mage::getModel('usa');

翻译标签

$helper->__('The Label');

我的猜测是你的一个XML文件仍旧你的旧模块配置用于翻译

<sometag module="mycompany" translate="someothertag" />

这使得magento寻找一个不再存在的助手,并且繁荣,这就是你的错误.

点赞