小型架构的MVC分层

  • Model 数据层
  • View 视图层
  • Controller 控制层

原本将这些逻辑处理都放在了Model层,随着项目的不断发展,数据逻辑和业务逻辑越发复杂,有时会将第三方信息发送获取,Redis数据存储,不同model的调度都写在了同一个Model上,导致model在原本数据访问的基础上,承担了更多的责任,编写维护都不再优雅高效。

大型架构的MVC分层

MVC分层

  1. Model : 数据映射层
  2. Repository : 将Model获取的数据封装成对像的集合并提供操作
  3. Service : 封装业务逻辑
  4. Controller :接收请求并调用Service
  5. View : HTML页面

Service调用Repository来获取数据,相互协调

  1. 通过Repository将数据操作和数据访问从Model中分离
  2. 通过Services处理复杂的业务逻辑
  3. Controller可调度不同的Service

MVC分层

最后

当你开始接受这种设定,会感觉到laravel式的优雅编程和其它优点

  1. 数据访问逻辑集中处理(易于维护)
  2. 业务和数据逻辑的完全分离(易于调试)
  3. 减少重复代码
  4. 降低程序出错的机率
  5. 将来切近到其它的ORM也很容易(解耦对数据源的依赖)

参考链接

Laravel 的中大型專案架構