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