我正在开始我的“学习MVC”的方式.基本上,面向对象编程没有大的问题,但有一个需要澄清的技术方面.看来我的理论还不够好.
目前,我正在使用KohanaPHP框架,版本3.
示例情况:
我有一个网站,用户可以在其中提交文章.
所以我有以下结构:
classes/ /controllers/ article.PHP /models/ articles.PHP
到现在为止还挺好.我没有扩展Kohana_Model的模型的问题,但是我不知道我是否正在使用正确使用ORM的模型.
基本上当使用扩展Kohana_Model的模型时,我将所有的逻辑运算放在模型中.我应该对使用ORM的机型做同样的事情吗?在网络的许多例子中,我看到正在对数据库进行逻辑操作的用户输入/数据的控制器,这在我看来是不正确的.
假设我需要从数据库中获取几行,所以我在模型中创建正确的方法并返回对象.我觉得是正确的,不是吗?
基本上,所有操作对用户输入/数据(从db选择,插入到db,验证)我放在模型中.这就是我理解MVC设计模式的方式.模型应该关心所有的“机械”操作,控制器只是模型/视图之间的“桥梁”,它是一个“前”引擎.
这是正确的方法吗?
我知道这对于更高级的用户来说可能是一个愚蠢的问题,但是我只想学习好的做法.如果有人能做出一些澄清,我会很高兴.
干杯,
嘛
简而言之,您的模型对数据执行所有操作(无论是传入,传出,数据库,文件…数据),并且您的视图应该保留显示数据.控制器应调用必要的模型方法来获取准备传递给视图的数据.控制器不应对数据进行任何更改,但应对其进行测试,以便正确完成必要的操作.
希望我说得足够清楚,让我知道,如果这不清楚你的事情.