gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:52:26 26 4
gpt4 key购买 nike

Magento,版本 CE 1.4.2、1.5.0.1、1.5.1.0

我必须按照所有食谱,config.xmlsystem.xmletc/module/Mycompany_My paymentmodule.xml 调整 Magento 的支付模块,一切都工作正常。

但是最近我仔细检查了一下,发现了一个错误:在我的 config.xml 中,我输入了:

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

...

这是因为最初,该模块应该放置在社区文件夹中。
按照指南,我重写了类、xml 等以反射(reflect)本地代码池。这也很顺利(除了我调试过的错误)。

但是,在 config.xml 中,我已重命名模块标签,如下所示:

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

奇怪的是,当我转到后端的“付款方式”时,Magento 现在不断要求我提供旧的 Helper-class-file,导致:

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寻找不再存在的助手,然后繁荣,这是你的错误。

关于Magento 模块已重命名,但 Magento 一直要求旧的帮助程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com