我一直在阅读Alejandro Gervasio的优秀服务层系列:http://www.devshed.com/cp/bio/Alejandro-Gervasio/我注意到他也是支持PHP Collections的开发人员之一,如http://www.devshed.com/c/a/PHP/PHP-Service-Layers-Handling-Entity-Collections/1/
为什么?为什么要创建一个通过使用数组本身来模拟简单关联数组的类?
答案 0 :(得分:10)
我没看过这篇文章,但我可以告诉你为什么我这样做呢:
答案 1 :(得分:1)
如果我可以用我在学说2中观察到的内容来完成答案:
使用Doctrine,您可以使用Collection
界面而不关心它是如何工作的。界面提供了过滤,排序等方法......
但Doctrine提供了名为Collection
的{{1}}的实现。您甚至不知道您正在使用它,因为您使用了界面,但是使用此特殊集合,Doctrine将能够在您对集合进行过滤/搜索/排序时智能且透明地进行数据库查询。它还将使Doctrine仅在访问它们(延迟加载)时加载集合的内容(对象列表),这有助于获得性能。
对于PHP数组,这是不可能的,您必须从数据库中完全加载它,然后执行操作。