7

在资源方面,核心 Magento 中似乎有两种风格的文件夹结构。有很多使用 mysql4 文件夹和其他简单使用 Resource 文件夹。

即安装脚本将住在这里:Mycompany_Mymodule_Model_Resource_Setup。

这是否有原因,遗留或其他原因 - 或者这只是不同核心开发人员之间的编码风格?

4

1 回答 1

16

首先: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的新方法。

于 2012-04-03T21:11:59.360 回答