我在 app / Repositories 中创建了几个存储库类,如 SeriesRepository , CommentRepository 等。我这样做是为了抽象数据库调用,所以如果我愿意,我可以使用Eloquent或查询构建器甚至原始SQL,而无需在代码中的数千个位置更改查询。
由于我将这个项目作为开源发布,我决定为每个存储库添加一个接口。这样,任何可能使用该项目的人都可以创建自己的特定存储库版本并只实现该接口。这有点矫枉过正吗?这只是过度工程吗?我应该跳过界面吗?
答案 0 :(得分:0)
作为最佳实践,建议编写接口代码,特别是可扩展项目。您可能有兴趣检查以下 Laravel Repository Package ,以完成大部分已完成的工作。以您需要的方式抽象:https://github.com/rinvex/repository
这是一个简单,直观,智能的Active Repository实现,具有极其灵活的功能。 Laravel的粒度缓存系统,用于抽象数据层,使应用程序更易于维护。下图显示了它的工作原理: