【发布时间】:2011-06-07 01:58:25
【问题描述】:
我正在开始我的“学习 MVC”方式。基本上,我对面向对象编程没有什么大问题,但是有一个技术方面需要澄清。看来我的理论还不够好。
目前,我使用的是 KohanaPHP 框架,版本 3。
示例情况: 我有一个网站,用户可以在其中提交文章。
所以我有以下结构:
classes/
/controllers/
article.php
/models/
articles.php
到目前为止一切顺利。我对扩展 Kohana_Model 的模型没有任何问题,但是我不确定我是否使用了使用 ORM 的正确方式的模型。
基本上,当使用扩展 Kohana_Model 的模型时,我会将所有逻辑操作放在模型中。我应该对使用 ORM 的模型做同样的事情吗?在网络上的许多示例中,我看到控制器正在对来自数据库的用户输入/数据执行逻辑操作,这在我看来是不正确的。
假设我需要从数据库中获取几行,所以我在模型中创建了正确的方法并返回了对象。我认为它是正确的,不是吗?
基本上,对用户输入/数据的所有操作(从数据库中选择、插入数据库、验证)我都放入模型中。这就是我理解 MVC 设计模式的方式。模型应该关心所有“机械”操作,控制器只是模型/视图之间的“桥梁”,它是一个“前端”引擎。
这是一个正确的方法吗?
我知道对于更高级的用户来说这可能是一个愚蠢的问题,但我只想学习好的做法。如果有人能提供一些澄清,我会很高兴。
【问题讨论】:
-
这不是一个愚蠢的问题。这个话题只是令人困惑,因为原来的MVC pattern doesn't match the processing in web apps well。所以不要试图找到“正确”的方法。使用类似 PMVC 的结构通常最合适,其中模型只是无意识的数据库接口。
标签: php model-view-controller design-patterns orm hmvc