Laravel4 : Will not using the repository pattern hurt my project in the long run?

标签 laravel laravel-4 repository-pattern eloquent

我正在阅读 Taylor Otwell 的书,他在书中建议使用存储库模式。我明白了它背后的理论。可以轻松切换实现并解耦代码。我也得到了代码。能够通过 App::bind() 与其他实现进行切换是非常好的。但过去两个小时我一直在思考应该如何处理我正在构建的新 CRM。几乎还没有代码,但它最终可能会很大。

我更愿意简单地使用 Eloquent 模型和通过 Controller 注入(inject)的集合。如果我没记错的话,这应该使一切都可以测试......允许模拟等。

存储库模式是否可以为可扩展性提供任何好处?在需要更多服务器或资源的情况下..

一旦 promise 使用 Eloquent ORM,为什么有人会想要替换它呢?我的意思是大多数项目都需要关系数据库。如果我要构建一个 UserRepositoryInterface 和一个实现 DbUserReponsitory,我无法看到何时需要或想要用其他东西来切换它。这对于我的项目中的大多数实体(订单、公司、产品……)都很重要。也许使用另一个 ORM 来替代 Eloquent?但我不认为自己会为这个项目这样做。

或者我错过了什么?我主要关心的是拥有可读且易于测试的代码。到目前为止还没有真正进行过测试:)

最佳答案

这并不一定意味着从长远来看,忽略存储库模式会让您头疼,但它确实使重构代码变得更加容易,因此您可以轻松编写测试存储库并将它们与 Controller 绑定(bind),以轻松测试您的业务逻辑。

因此,即使您不太可能替换 Eloquent 或任何其他部分,将逻辑 block 和操作封装在存储库中仍然对您有益。

关于Laravel4 : Will not using the repository pattern hurt my project in the long run?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498809/

相关文章:

php - DDD - 仅在更改时保留聚合子项

c# - 存储库模式 - 使其可测试、DI 和 IoC 友好且 IDisposable

javascript - 忘记密码 UI 在 laravel 中无法正常工作

mysql - Laravel 根据种子数据迁移外键

laravel - Laravel 4 中多于一个单词的表名约定

php - 我无法安装 Moltin Laravel Cart

c# - 如何使用 Repository Pattern、Service Pattern、UnitOfWork、ORM(EF、NHibernate 等)用 ASP MVC 构建项目?

javascript - Laravel 在向服务器发送 JSON 格式的 ISO 格式日期时提示 'trailing data'?

php - 将 SQl 转换为 Laravel

Laravel 通知外观在发送通知之前检查用户