在资源方面,核心Magento似乎有两种文件夹结构样式。有很多使用mysql4文件夹和其他简单的使用资源文件夹。
即。安装脚本将存在此处:Mycompany_Mymodule_Model_Resource_Setup。
是否存在这样的原因,遗产或其他原因 - 或者这只是不同核心开发人员之间的编码风格?
答案 0 :(得分: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奠定了基础,改变了这些资源的工作方式和命名方式。
Backwards compatibility已得到维护,但大多数旧Mysql4
资源已重命名为使用通用Resource
,并引入了new method多个RDBMS支持。