【发布时间】:2011-06-16 13:55:24
【问题描述】:
我目前正在尝试弄清楚如何正确实施 MVC 原则。让我们以一个简单的博客为例。我有一个包含两个表的数据库:Blogs 和 cmets。博客表由标题、内容、日期等字段组成。评论包含作者姓名、日期、内容等。
让我们从更简单的项目开始。我有几个看法。喜欢:
- 撰写/编辑博客项目
- 显示博客项目
- 显示摘要页面(例如最近的博客、热门话题等)
- 等
控制器对我来说也很清楚:
- 管理控制器(将博客项目传输到写入/编辑视图或将它们发回)
- 博客控制器(将博客项目传输到博客视图,例如摘要页面或仅显示一个的页面。这也会检索 cmets)
- 评论控制器(从评论创建/删除视图传输数据)
然后是模型。我真的不知道我应该如何实现这些。 Zend Framework 快速入门页面推荐了一个非常小的模型,它只有私有属性以及特定项目的 getter 和 setter。他们建议在 Mapper 中执行数据库逻辑。
但这是我的问题。假设我想获取最新的博客项目。你将如何实现这一点?您将在哪里编写函数 fetchRecentItems()?在映射器中?似乎这应该只包含基本的 CRUD 语句。在另一个模型中,例如 BlogService?在控制器中?
有人可以帮我吗?我希望看到一个快速的伪代码示例。
(我试着把我的知识总结一下,让我的思考过程更清晰一点。如果我理解错了,请纠正我。谢谢!)
【问题讨论】:
-
您可能有兴趣阅读 en.wikipedia.org/wiki/Domain-driven_design 。将“(域)模型”视为您的域(在您的示例中为博客系统)的“语言”。
标签: php model-view-controller zend-framework