Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用存储库模式时的传统类_Php_Laravel_Repository Pattern - Fatal编程技术网

Php 使用存储库模式时的传统类

Php 使用存储库模式时的传统类,php,laravel,repository-pattern,Php,Laravel,Repository Pattern,我已经和拉威尔一起工作几年了。我的传统方法是在app下有一个class文件夹,并将我的数据访问函数放在类中。保持控制器干净,利用类来做脏活 最近一位同事发现了存储库,我一直在阅读它们,对此感到困惑 利用存储库,我的应用程序/类/文件夹和“传统”类还有位置吗?有可能保持健康的平衡吗?当涉及到存储库设计模式时,是否有理由全力以赴 最佳实践是否说明了这一点 感谢设计模式的想法是将持久性逻辑(与数据库和/或缓存接口)从域模型中分离出来 基本上,对“内存中”对象所做的任何更改都应该保留在“传统”类中。存储

我已经和拉威尔一起工作几年了。我的传统方法是在app下有一个class文件夹,并将我的数据访问函数放在类中。保持控制器干净,利用类来做脏活

最近一位同事发现了存储库,我一直在阅读它们,对此感到困惑

利用存储库,我的应用程序/类/文件夹和“传统”类还有位置吗?有可能保持健康的平衡吗?当涉及到存储库设计模式时,是否有理由全力以赴

最佳实践是否说明了这一点


感谢

设计模式的想法是将持久性逻辑(与数据库和/或缓存接口)从域模型中分离出来

基本上,对“内存中”对象所做的任何更改都应该保留在“传统”类中。存储库将从数据库中获取或更改数据,但如果有任何涉及操作数据的业务逻辑的内容不涉及对数据库的更改(无论是格式化数据还是对其执行某些数学操作),则可以将其保留在域类中


最佳实践(特别是单一责任原则)鼓励将存储库或数据映射逻辑与可以用对象数据封装的业务逻辑分离。

这正是我对存储库的感受。“记忆中”真的帮助我理解这一点。谢谢你的回答。