laravel大型架构的MVC分层
Dec 24, 2017
小型架构的MVC分层
原本将这些逻辑处理都放在了Model层,随着项目的不断发展,数据逻辑和业务逻辑越发复杂,有时会将第三方信息发送获取,Redis数据存储,不同model的调度都写在了同一个Model上,导致model在原本数据访问的基础上,承担了更多的责任,编写维护都不再优雅高效。
大型架构的MVC分层
- Model : 数据映射层
- Repository : 将Model获取的数据封装成对像的集合并提供操作
- Service : 封装业务逻辑
- Controller :接收请求并调用Service
- View : HTML页面
Service调用Repository来获取数据,相互协调
- 通过Repository将数据操作和数据访问从Model中分离
- 通过Services处理复杂的业务逻辑
- Controller可调度不同的Service
最后
当你开始接受这种设定,会感觉到laravel式的优雅编程和其它优点
- 数据访问逻辑集中处理(易于维护)
- 业务和数据逻辑的完全分离(易于调试)
- 减少重复代码
- 降低程序出错的机率
- 将来切近到其它的ORM也很容易(解耦对数据源的依赖)