Magento - 模块约定mysql4或资源

Mar*_*ace 7 magento

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

即安装脚本将存在于此处:Mycompany_Mymodule_Model_Resource_Setup.

这是遗产还是其他原因 - 或者这只是不同核心开发人员之间的编码风格吗?

Ala*_*orm 16

第一:Magento的文件夹结构只是因为其自动加载器的实现而存在.如果你试图从Magento中放置文件的地方获得太多意义,你会发疯,不同的模块似乎遵循不同的约定.自动加载器将寻找

Mage_Core_Model_Foo_Bar
Run Code Online (Sandbox Code Playgroud)

Mage/Core/Model/Foo/Bar.php
Run Code Online (Sandbox Code Playgroud)

所以我将讨论下面的命名约定,它将间接解决文件在特定文件夹中的原因.

最初所有数据库资源都以Mysql4约定命名.我和一些原始开发人员进行了交谈,目的是表示该资源是针对当时"标准"的Mysql 4数据库.如果一个资源使用了Mysql 5的特定功能,那么他们就已经使用了一个Mysql5约定.

随着Magento Inc.经历了通常的创业流失,而其他开发人员接管了原始开发人员停止的地方,他们的想法发生了变化.Magento 1.6版本为企业版支持多个RDBMS奠定了基础,改变了这些资源的工作方式和命名方式.

保持了向后兼容性,但大多数旧Mysql4资源都被重命名为使用泛型Resource,并引入了一种用于多个RDBMS支持的新方法.