magento模型正确放置方法

时间:2012-10-03 13:36:36

标签: model magento-1.7 magento

我的问题是关于model目录树中的正确使用和代码放置。我一直在阅读很多,但无法得出结论。以下是我检查过的一些链接:

我有几个表及其相应的模型,包含资源和集合:

magento
.
.
Model
  ├───Resource 
  │      ├─ first_model
  │      │           └─ collection.php
  │      ├─ second_model
  │      │           └─ collection.php
  │      ├─ first_model.php
  │      └─ second_model.php
  ├─ first_model.php
  └─ second_model.php

所以,我的问题:我想知道在哪里必须编写我的方法。在位于 Model 文件夹的php文件中, Resource 文件夹中的php文件上或 collection.php 文件中?我正在研究我已安装的不同插件以找到模式,但我不明白究竟要放在哪里。也许是微不足道的,遵循一些模式,但我无法通过谷歌搜索发现它或找到它。

1 个答案:

答案 0 :(得分:1)

关于这个问题可能有几个意见,我不确定我的是正确的。但是,由于目前还没有人给出他们的答案,我想即便是这样的意见总比没有人好。

因此,对于大多数模型,您有3个模型类。例如,让我们假装你有一个博客扩展,我们正在讨论模型文章:

  1. 集合(类 Yaroslav_Blog_Model_Resource_Article_Collection ) 最容易描述。你应该把所有应该用于多篇文章的方法放在这里,特别是它在SQL表中的数据。例如:按日期对文章进行分类的方法,或者按作者等方式对文章进行过滤的其他方法。

  2. 资源模型(类 Yaroslav_Blog_Model_Resource_Article ) 此模型适用于单篇文章的SQL数据。例如,检查文章url键是唯一的方法或类似的方法。任何适用于SQL级别数据的东西。

  3. 主要模型(类 Yaroslav_Blog_Model_Article )。 简单地说,你把其他一切都放在这里。这个模型是最高的抽象层,它的职责是业务逻辑。你写了一个方法,用文章生成RSS feed?它的位置在这里(或者可能在控制器中)。编写本文读者某种日志的方法?再来一次。

  4. 简单地说:除非您直接使用SQL查询,否则将方法放在主模型中。我希望这是有道理的。