有ORM时存储库模式有什么用?
例.假设我有以下(虚构)表:
表:用户
pk_user_id
fk_userrole_id
username
表:userroles
fk_userrole_id
role
现在有一个orm我可以简单地把它放在一个模型文件中:
$user = ORM::load('users', $id);
现在$user已经是我的对象,可以轻松加载:
(如果事物是自动的单数/复数,会更好)
foreach ( $user->userroles()->role as $role )
{
echo $role;
}
现在使用Repository模式,我必须为Users创建一个存储库,为Roles创建一个存储库.存储库还需要各种函数来为我检索数据并存储它.此外,它需要与Entity模型一起使用.所以我也必须创造所有这些.
对我来说,看起来很多东西…当我可以简单地获得像上面描述的ORM数据.而且我可以轻松存储它:
ORM ::店($用户);
在这种情况下,它不仅会将用户对象存储到数据库中,还会将对“角色”对象所做的任何更改存储起来.所以不需要像存储库模式那样需要任何额外的工作……
所以我的问题基本上是,为什么我要使用带有ORM的存储库模式?我已经看过教程在哪里使用该模式(与Doctrine一样).但它对我来说真的没有任何意义……任何人都可以解释它与ORM的结合使用.??