gpt4 book ai didi

php - Laravel 仓库

转载 作者:IT王子 更新时间:2023-10-29 00:02:00 28 4
gpt4 key购买 nike

Laravel 中的 Repositories 有什么优势?它似乎是从应用程序的业务逻辑中抽象出模型层。虽然这似乎只是让整个请求生命周期变得更加复杂,但收效甚微。

有人可以阐明 Laravel 存储库的优势吗?


编辑

现在使用存储库一段时间后,我将添加以下内容:

  • 存储库强制执行单一职责
  • 存储库应该只返回一个实体集合
  • 虽然独立于依赖注入(inject),但概念是兄弟
  • 实际存储实现的存储抽象(例如 MySQL)
  • 更容易测试

最佳答案

存储库,就像在提供的教程中一样,不是 Laravel 概念所必需的。相反,它们是 Laravel 可以实现的一种 IoC 注入(inject)形式。任何可能同样被注入(inject)的对象并不意味着它是一个存储库。观看视频,了解 Taylor Otwell 的一个很好的例子,它恰好也使用了一个“存储库”:http://vimeo.com/53029232 .

在此示例中,存储库抽象出数据的来源,并将其传递给 Controller ​​。只要传递的数据实现了指定的接口(interface), Controller 就可以“愉快地”使用接口(interface)定义的方法,而不必担心数据最初来自哪里。这允许在不破坏 Controller 的情况下切换数据的初始源。您可以从文件、数据库、外部 API、模拟对象或任意数组中提取数据。基本上, Controller 不需要收集存储库表示的数据。它可以接收和使用。

关于php - Laravel 仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367159/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com