我正在开始“学习MVC”的方式。基本上,我没有面向对象编程的大问题,但是有一个技术方面需要澄清。看来我的理论还不够好。控制器与模型 - 需要说明
目前,我使用KohanaPHP框架,第3版。
示例情况: 我有一个网站,在那里用户可以提交文章。
所以,我有以下结构:
classes/
/controllers/
article.php
/models/
articles.php
到目前为止好。我没有模型扩展Kohana_Model的问题,但我不确定我是否使用了正在使用ORM的正确方式模型。
基本上,当使用模型扩展Kohana_Model时,我会把所有的逻辑操作放在模型中。我应该对使用ORM的模型执行相同的操作吗?在网上的很多例子中,我看到控制器对用户输入/数据进行逻辑操作,这在我看来是不正确的。
比方说,我需要从数据库中获得几行,所以我在模型中创建适当的方法并返回对象。我认为这是正确的,不是吗?
基本上,所有对用户输入/数据的操作(从db中选择,插入db,验证)我放入模型中。这就是我理解MVC设计模式的方式。模型应该关心所有“机械”操作,控制器只是模型/视图之间的“桥梁”,而且它是一个“前端”引擎。
这是一个正确的方法吗?
我知道这对于更高级的用户来说可能是一个愚蠢的问题,但我只想学习最佳实践。如果任何人可以提供一些澄清,我会很高兴。
这不是一个愚蠢的问题。该主题只是混淆,因为原来的[MVC模式不匹配web应用程序中的处理](http://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970)。所以不要试图找到“正确”的方法。通常最适合使用类似PMVC的结构,其中模型仅仅是未知的数据库接口。 – mario 2011-01-11 10:12:33