MVC: M&C 怎么分?
Posted CodeIgniter中国
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC: M&C 怎么分?相关的知识,希望对你有一定的参考价值。
大部分 phper 使用 MVC 模式的时候,可能遇到过这种情况,有些逻辑可写到 Controller 也可写到 Model,没有一个清晰的界限,写着写着也就会发现,每个人分的都不一样,可能换做你会写到 Model 里的,其他队友就会写到 Controller。程序是都能运行,但风格总是得不到统一,谁也说服不了谁,总会有一个人不舒服,那 M & C 到底应该怎么分呢?
其实 Model 本意是模型,大部分人会将它用做数据层,其他的都丢 Controller 里面,然而 Model 不应该只是数据操作,也应该包含一定的业务逻辑。
也就是说 Model 里可以写数据操作也可以写业务逻辑,有人会说这岂不是更乱?那还要 Controller 做什么?
那么接下来咱们带着疑问看看 Controller 到底应该做什么?
其实所有大部分(可能有例外)Controller Action 做的事可以分为4步:
权限验证
输入过滤
执行操作
返回结果
当中有的步骤可以省略,比方说 1, 2, 4。说白了 Controller 就是用来控制程序执行流程的,而具体的怎么做是调用 Model 来处理,比如说:
然而这里有一个致命的问题,并不是所有的 Action 都是单向的,比如说常见的用户注册功能。那如何把它变成单向的呢?我的做法是使用 try catch:
至此就可以无脑的按照套路来写 MVC 了。
此方案只是我的最佳实践,希望能给大家带来一丝灵感就好,可能看起来不是很优雅。优点是可能性很多,因为是重复的流程,比方说弄个 Web GUI,将 Model 的方法弄成各种块,用拖拽的形式来生成 Controller。
以上是关于MVC: M&C 怎么分?的主要内容,如果未能解决你的问题,请参考以下文章