/ code

mvc

MVC 是普遍的开发组织代码的模式。
MVC(Model-View-Controller)

Model 是数据处理中心

“胖 Model 瘦 Controller” 原则,也就是说把所有的业务逻辑都放在 model 中,controller 只负责请求响应。

  • model 用来处理数据。
  • controller 用来处理用户输入。
  • view 用来实现数据可视化显示。

view 和 controller 不能用来操作数据。

Controller 要小巧玲珑

Controller 的主要任务是捕获 HTTP 请求,并将请求传递给应用程序的其余部分。不要在在控制器中处理业务逻辑!

所有的业务逻辑应该写在 Model 中,因为这样业务逻辑代码就可以被多种方式共用:

  • controller 调用
  • cron job 调用
  • artisan/yii 命令行调用
  • queue job 调用

Controller 中应该对输入的数据进行验证 validate

View 要注意安全

默认情况下,你应该使用 htmlentities() 来转义所有输出信息,以保护用户免受恶意的 js 脚本攻击。

MVC 变种

MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

MVC,MVP 和 MVVM 的图示