我正在为我的开源项目开发一个“胖模型” ,并且我正在研究位于 ORM (RedBeanPHP) 和控制器之间的层。
我将有一个User类,可能还有一个UserFactory/UserMapper类,它可以构造User对象,以及执行诸如usernameExists等元操作。
许多其他 SO 问题/博客文章指出,如果我需要检索对象集合,User那么让我的UserMapper类遍历结果集并构建n 个 User对象将是低效的。
我的想法是创建一个UserCollection实现 PHP 类的ArrayObject类。 UserMapper将能够创建一个UserCollection在内部存储原始结果集的多维数组。然后我可以实现ArrayObject的迭代器函数[]等来User按需构造相应的对象。
这是一个聪明的方法吗?在采用这种方法之前,我需要考虑什么?