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