关于 l5-repository 开发架构的问题

我实际上是一名产品经理(手动捂脸),只是爱好开发。
产品的方法论:先实现,再优化。但我现在实际上是在学习……所以希望能从多产品线,业务复杂度很高的角度出发去尝试着开发。
基于LARAVEL的开发架构,看了很多的文章,比如


  • 单纯的使用l5-repository,貌似很多的业务逻辑会放在Controller层?
  • Criteria层用http://blog.zhuanxu.org/2016-12-06-eloquent-6.html 的描述,每单个的复杂业务逻辑就要有一个文件?

按照点灯坊的架构,会有一个Service层来处理业务逻辑。

  • 合理的架构是否应该将l5-repository的repository层注入Service?

l5-repository通过

php artisan make:entity Xxxx

会在Repositories目录下,分别生成

  • XxxxRepository.php
  • XxxxRepositoryEloquent.php
  • 这两个文件的使用场景有何区别?

http://blog.zhuanxu.org/2016-12-19-doctrin...

  • 这篇文章看的我有点蒙逼

恳切的请各位以【多开发组】【多产品线】【业务复杂性高(如 http://blog.zhuanxu.org/2016-12-19-doctrin... )】等纬度,基于Laravel和l5-repository帮我解惑。谢谢。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
liyu001989

考虑到 issue和pr的处理情况,我们使用的是 https://github.com/rinvex/repository。不同的实现而已,都是repository层。

我的理解主要有两点,

  • 一是repository是用来进行数据操作的一层,负责进行数据的查询和修改,需要进行查询的地方直接操作的是repository,并不关心具体是怎么操作的,有可能是\DB,也可以是Eloquent,也可以是某个性能更好的XXORM。解耦了orm。
  • 第二个就是方便我们添加缓存。

但是其实对于解耦,我感觉很长一段时间我们还是很依赖Eloquent的,因为他真的是好用,替换成另一套ORM或者直接使用sql,应该是很后面优化的事了。对于我的话,好处就是方便缓存,逼着我们不会把换七八糟的逻辑写在model里面。所以到底用不用,还是挺纠结的,看项目吧。

然后就是对于貌似很多的业务逻辑会放在Controller层? ,这点我不同意,这个跟使不使用repository没什么关系,controller要做的是验证请求,处理业务,返回结构。验证请求有FormRequest, 处理业务有event,job,service,太多东西帮助我们处理,controller太大太乱,一定是代码组织的有问题。业务通过各种方式处理了,而不是每单个的复杂业务逻辑就要有一个文件? 按照点灯坊的架构,会有一个Service层来处理业务逻辑。

7年前 评论

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