2

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文件夹中或在collection.php文件中的 php 文件上?我正在研究我已安装的不同插件以找到一种模式,但我不明白该放在哪里。也许是微不足道的,遵循某种模式,但我无法通过谷歌搜索发现或找到它。

4

1 回答 1

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 提要?它的位置在这里(或者可能在控制器中)。一种写这篇文章读者的日志的方法?又是在这里。

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

于 2012-10-03T18:34:09.220 回答