laravel 应用分层设计

最新需要开发一个中型复杂的项目,在考虑应怎样进行应用分层,先说一下我的思路:
我准备分为三层
1.Controller层:主要负责验证参数,并调用Service层,返回响应
2.Service层:主要负责业务逻辑并调用Model层
3.Model层:主要和数据库打交道
我个人觉得这三层就可以了,保持简单才是最佳实践
浏览了一些文章有建议在Model和service之间增加Repository由它来对接 Model层
大家觉得有必要吗?
此贴只是讨论,阐述一下我的思路,欢迎大家阐述一下自己的想法哦,多多益善,感谢大家给我提供一些参考

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 17

既然分了,我觉得数据仓库(Repository)是有必要的。调用顺序应该是这样:控制器→services→数据仓库→模型。

它的作用相当于就是对外提供数据处理(增删改查)的方法,符合单一原则。例如,原来的用户数据是通过模型去获取数据库的数据,现在需要增加一层缓存层,我只需要修改数据仓库里获取用户数据的方法就可以,而不需要去修改业务代码,也就是解耦。

8个月前 评论
陈先生
  • Controller
  • Data
  • Enum
  • Middleware
  • Model
  • Repository
  • Service
  • Support
8个月前 评论
aab
  • controller
  • middle
  • service 完成多个事情(比如 下单 + 短信提醒 + 邮件提醒)
  • action 完成一个具体的事情(比如 下单,短信提醒,邮件提醒)
  • repository 数据的获取
  • model 数据实体充血模式,数据 + 方法
8个月前 评论
九霄道长

等 Service 互相调用就难受了

8个月前 评论
cccdz 8个月前
九霄道长 (作者) 8个月前
cccdz 8个月前
九霄道长 (作者) 8个月前
cccdz 8个月前
cccdz 8个月前
九霄道长 (作者) 8个月前
cccdz 8个月前

有案列吗 ?小白想了解大型的架构框架学习学习

8个月前 评论

个人认为太麻烦,分层太多,每次开发的时候就会建立太多文件,反而加大开发的复杂,建议一般三层够了,特别是个人开发,怎么方便怎么来。

8个月前 评论

看项目复杂程度把 如果简单项目,分层多是累赘

8个月前 评论

喜歡使用DB形式執行sql操作上方便些,當然Model也有它的好處。

8个月前 评论
sanders

分层的话主要就这三层:

入口:Controller、Job、Command、EventListener。 入口仅做参数判断整理,权限校验和对业务的调用。

业务:Service。 业务处理具体的业务逻辑,也是代码量最多的部分,要求尽量做到可复用。

数据:Model、Event。 定义模型关系,对数据存取过程进行转换,在业务和入口间进行传递。

其余的都服务于以上三层。

8个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!