如何在模块中调用另一个模块的帮助程序?
当我尝试
法师::助手( '助手类') - > getValueClass( '',$ ID)
它给了我错误:
致命错误:在第516行的C:\ wamp\www\example\app\Mage.php中找不到类'Mage_Helperclass_Helper_Data'
帮助程序类名称为Test_Helperclass_Helper_Data.
这是调用帮助程序的正确方法,但是您的错误表明您没有正确设置模块.我假设您的模块存在app/code/local/Test/Helperclass
,并且您已为模块启用了一个app/etc/modules/Test_Helperclass.xml
文件.
当你调用Magento的工厂,如Mage::getModel()
,Mage::getSingleton()
或者Mage::helper()
,你没有提供完整的类名,但对类的引用您想实例.
这有格式modulename/classname
.
在我们的例子中,模块名称是helperclass
(不必与模块的实际名称有任何关系,它也可以是foobar
),而我们的类名是data
.所以我们基本上都在打电话Mage::helper('helperclass/data')
,但Magento让我们将其缩短到了Mage::helper('helperclass')
.
我们需要告诉Magento扩张背后的规则helperclass/data -> Test_Helperclass_Helper_Data
.我们在模块配置文件中执行此操作app/code/local/Test/Helperclass/etc/config.xml
:
<?xml version="1.0"?>
<config>
...
<global>
<helpers>
<!-- Here is where we define the mapping rule -->
<helperclass>
<class>Test_Helperclass_Helper</class>
</helperclass>
</helpers>
</global>
...
</config>
Run Code Online (Sandbox Code Playgroud)