Magento自定义模块 - 存储位置包括

时间:2010-08-18 20:15:23

标签: php magento

我正在创建一个自定义magento模块,并且无法确定存储模块所需的一些配置文件的最佳位置?

那里有人建议最好的地方吗?它应该在模块的根目录中还是与助手一起使用?

编辑: 与这个问题一样:在名称空间的根目录中是否有可以在模块之间共享包含模块的文件夹?

2 个答案:

答案 0 :(得分:1)

如果这些文件用于配置,则它们属于etc。想想etc文件夹和unix / linux / bsd系统的etc文件夹一样。这是您放置配置信息的地方。惯例是您应该使用XML文件来保存配置数据,然后使用

加载它
Mage::getConfig()->loadModulesConfiguration('your-xml-name-here.xml')

当您使用loadModulesConfiguration方法加载配置值时,Magento将系统中所有模块的XML文件合并到一个大树中。这允许您编写的其他模块(或其他人会编写)共享配置信息。

您没有需要来执行此操作,但etc绝对是您要包含在模块中的任何配置文件的定义位置。此外,无论您选择哪种方法,我都会选择一个唯一的文件名(packagename_modulename.xml,packagename_modulename.inc等),以确保Magento的某个人可能会选择在未来版本中使用您的名字。

  

与这个问题一样:在名称空间的根目录中是否有可以在模块之间共享的包含模块的文件夹是否可以接受?

不,那是不可接受的。如果您想要共享配置,请使用我上面提到的方法。如果模块需要彼此共享其他信息,它们应该直接执行(一个模块实例化另一个模块的模型),或者您应该定义一个处理所有模块间通信的中央“代理”模块。如果您对该主题更感兴趣,我会推荐Meyer的面向对象的软件构建的前几章。如果你可以通过整个“如何实现低级数据结构”的老编程书籍,那么它就是CS人们说“模块”时的一个很好的介绍。

(还值得一提的是,如果有简单的配置值,了解如何使用Magento System Config管理部分是值得的。)

答案 1 :(得分:0)

你可能可以逃脱这一点,但你故意避免Magento这样做。在模块内部,创建一个名为etc的目录,并在其中放入一个名为config.xml的XML配置文件。该文件将被读取并包含在Magento配置中,这意味着您不必尝试逃避框架以获取配置数据。查看现有文件以获取一些示例。

这种方法的另一个好处是,从配置XML文件到用户配置选项(在管理面板中)的转换并不太困难(需要轻微的重构),因此您可以稍后更改配置方法。 / p>

希望有所帮助!

谢谢, 乔

相关问题