如果你从头开始创建一个模块,辅助类并不是绝对必要的。我通常会跳过创建一个,直到需要它。
但是,如果任何 XML 文件使用该module
属性来指定翻译模块,则该属性需要解析为有效的帮助程序。例如,在这个核心文件中
<!-- File: app/code/core/Mage/Catalog/etc/system.xml -->
<tabs>
<catalog translate="label" module="catalog">
<label>Catalog</label>
<sort_order>200</sort_order>
</catalog>
</tabs>
有module="catalog"
。通过指定此属性,翻译标签的 Magento 系统代码将如下所示
Mage::helper('catalog')->__('Label');
因此,从目录模块中删除帮助程序会破坏 Magento 的某些部分。
(单部分类别名由Magento系统代码catalog
自动转换为)Mage::helper('catalog/data')
Magento 的许多XML 文件中都使用了这种“分组翻译助手”功能,而不仅仅是system.xml
(布局、小部件等)。此外,Magento 中的某些系统会推断和/或要求存在用于翻译的辅助模块(访问控制、外部 API 系统等)。
长话短说:如果您从头开始创建模块,请随时将帮助程序排除在外,直到您开始遇到 Magento 无法实例化帮助程序的错误。永远不要从模块中删除现有的帮助器,如果你想确保你与其他人可能做出的假设 100% 兼容,请始终包含一个Data.php
帮助器类。