【发布时间】:2009-12-28 17:46:13
【问题描述】:
我有一个名为Cat 的表和一个名为Cat 的PHP 类。现在我想做一个CatDataMapper 类,这样Cat extends CatDataMapper。
我希望 Data Mapper 类提供执行 ORM 以及创建、编辑和删除 Cat 的基本功能。
为此,也许非常了解这种模式的人可以给我一些有用的建议?我觉得只提供一些函数比如update()、delete()、save()有点太简单了。
我意识到 Data Mapper 有这个问题:首先创建 Cat 的实例,然后初始化所有变量,如 name、furColor、eyeColor、purrSound、meowSound、attendants 等。一切都设置好后,你调用从 CatDataMapper 继承的 save() 函数。这很简单;) 但现在,真正的问题是:您查询数据库中的猫并返回一个包含大量猫数据的简单无聊的结果集。
PDO 具有一些创建 Cat 实例的 ORM 功能。可以说我使用它,或者甚至可以说我有一个带有关联数组的 mapDataset() 函数。然而,一旦我从数据集中获得了我的 Cat 对象,我就有了冗余数据。同时,20 个用户可以从数据库中获取相同的猫数据并编辑猫对象,即重命名猫,然后 save() 它,而另一个用户仍然在设置另一个 furColor。当他们都保存编辑时,一切都搞砸了。
呃...好吧,让这个问题保持简短:这里有什么好的做法?
【问题讨论】:
标签: php orm datamapper