Laravel 仓库模式解惑!

  • 首先建立一个接口文件 TestInterface.php 文件。
    图片描述

  • 建立两个 Repository 文件,具体实现 TestInterface 接口。
    图片描述

图片描述

  • 进行绑定图片描述

图片描述

  • 增加到 app.php 文件中的 providers

图片描述

  • 控制器写法

图片描述

  • 问题:参照我控制器中的写法,如果是这样的话,那么写接口的意义就不大了,即使没有接口文件,我也可以使用两个 Repository 中的方法。请大佬们指教,控制器这里正确的打开方式。
    如果我在控制器这样使用接口,可是怎么使用,谢谢大佬们!图片描述

阅读 4.1k
2 个回答

个人感觉网上的各种laravel教程中所提到的仓库模式,只适合于封装一些复杂的查询操作,其他再无用处。完全意义的仓库模式需要和领域模型进行合作,在laravel中,model并不能充当领域模型的角色。且也基本不存在仓库与laravel自带orm的解偶操作,因此定义针对model的interface意义也不大。

当然,这些仅仅是个人理解,欢迎讨论。领域驱动设计相关知识还需学习

不讨论这个仓库模式,你的代码里控制器构造函数部分注入的应该是接口

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题