2

我最近浏览了一些关于如何编写自己的 PHP MVC 框架的教程。为了避免一些问题和评论:我不想在生产环境中使用它,我只是喜欢摆弄并了解 MVC 中发生了什么。

到目前为止,我能够拥有单页,例如。http://domain/news/show/3向我显示了数据库中 id 为 3 的新闻记录,http://domain/news/ all 在一页上将它们全部列出。

现在我有多个实体,因此有多个列表,并希望它们都出现在一个页面上。最好是打开http://domain/时看到的页面

我是否必须编写一个新模型和控制器来调用其他模型?我有点不确定如何实现这一目标。

4

2 回答 2

2

据我所知,对此没有严格的定义或约定。

我要做的是:

类概述

  • Controller_Homepage
  • Controller_News
  • Model_NewsArticle

行为

控制器_首页

  • Action_Index获取多个Model_NewsArticle实体,渲染它们,并将输出传递给视图。还获取您可能需要的任何其他实体并将其渲染输出提供给查看。

控制器_新闻

  • Action_List获取多个Model_NewsArticle实体,渲染它们,并将输出传递给视图。
  • Action_View调用Model_NewsArticle::factory($id),对其进行渲染,并将输出传递给查看。

型号_新闻文章

  • 包含一个factory接受$id. 返回 的实例Model_NewsArticle
  • 包含用于查找多篇文章的方法。查询构建器在这里会很好。

这绝不是全面的,我遗漏了很多小细节,但它相当简单而且相当枯燥。

于 2012-04-27T01:09:45.797 回答
1

这确实是一个偏好问题。拥有另一个控制器和模型使大型项目中的代码分离更容易。就个人而言,我只会制作一个新的控制器,因为它是一个不同的页面,可能有不同的操作,我会使用现有的模型来获取数据以保持你的代码干燥(不要重复你自己)。

于 2012-04-27T01:06:08.227 回答