我和Magento一起开始了一个项目。首先我要说的是,我来自MS世界,我之前从未使用过PHP,虽然我很快就赶上了我的新手。
我似乎无法理解模型,资源模型,资源和实体对象之间的差异以及它们在magento体系结构中的相关性。
我已经尝试谷歌搜索了几天,我发现了一些信息,我发现的并没有真正解释它!
答案 0 :(得分:20)
Magento远非典型的PHP开发,它所称的东西并不总是与其他人称之为一致。 Magento将模型层分为两部分,如您所知,模型处理业务逻辑,资源部分仅处理与数据库的对话 - 理论是如果您决定使用的是数据存储无法使用PDO进行寻址,您可以交换不同的资源来处理/加载和保存,而不需要任何围绕这些内容的逻辑。
magento拥有的两种不同类型的资源是Entity和Mysql4--后者是一个非常标准的表网关系统,资源映射到数据库中的表,前者有点复杂。为了使用户和开发人员能够轻松地将自定义字段添加到事物中,magento(产品,客户,订单等)的主要部分都由所谓的实体 - 属性 - 价值系统(EAV)代表。每个值都有一个类型化的列,你有一行带有一个键(cf列名)和一个值。实体资源处理这些eav表到保存数据的字段数组的映射。
要强调的是,这远非典型的PHP应用程序,如果您打算学习PHP,我会选择一个不同的系统。