在资源方面,核心 Magento 中似乎有两种风格的文件夹结构。有很多使用 mysql4 文件夹和其他简单使用 Resource 文件夹。
即安装脚本将住在这里:Mycompany_Mymodule_Model_Resource_Setup。
这是否有原因,遗留或其他原因 - 或者这只是不同核心开发人员之间的编码风格?
在资源方面,核心 Magento 中似乎有两种风格的文件夹结构。有很多使用 mysql4 文件夹和其他简单使用 Resource 文件夹。
即安装脚本将住在这里:Mycompany_Mymodule_Model_Resource_Setup。
这是否有原因,遗留或其他原因 - 或者这只是不同核心开发人员之间的编码风格?
首先:Magento 的文件夹结构之所以存在,只是因为它的自动加载器的实现。如果您试图从 Magento 中放置文件的位置获取太多含义,您会发疯的,并且不同的模块似乎遵循不同的约定。自动装载机将寻找
Mage_Core_Model_Foo_Bar
在
Mage/Core/Model/Foo/Bar.php
所以我将在下面讨论命名约定,这将间接解决文件位于特定文件夹中的原因。
最初所有的数据库资源都是按照Mysql4
约定命名的。我已经与一些原始开发人员进行了交谈,其目的是表明该资源用于当时的“标准”Mysql 4 数据库。如果一个资源使用了一个特定的特性,比如 Mysql 5,那么他们就会使用一个Mysql5
约定。
随着 Magento Inc. 经历了通常的启动流失,其他开发人员接手了原始开发人员离开的地方,对此的想法发生了变化。Magento 1.6 版本为企业版支持多个 RDBMS 奠定了基础,改变了这些资源的工作方式和命名方式。
保持了向后兼容性,但大多数旧Mysql4
资源被重命名为使用 generic Resource
,并引入了一种支持多 RDBMS的新方法。