ORMを使用している場合、リポジトリパターンはどのようなメリットがありますか?
例。次の(架空の)テーブルがあるとします。
表:ユーザー
pk_user_id
fk_userrole_id
username
表:ユーザーロール
fk_userrole_id
role
これで、ormを使用して、これをモデルファイルに入れることができます。
$user = ORM::load('users', $id);
これで、$ userはすでに私のオブジェクトであり、簡単に遅延ロードできます。
(物事が自動的に単数形/複数形になるとさらに良いでしょう)
foreach ( $user->userroles()->role as $role )
{
echo $role;
}
リポジトリパターンを使用して、ユーザー用のリポジトリとロール用のリポジトリを作成する必要がありました。リポジトリには、データを取得して保存するためのあらゆる種類の関数も必要です。さらに、エンティティモデルで動作する必要があります。だから私もそれらすべてを作成する必要があります。
私には、多くのことが行われているように見えます...ORMを使用して上記のようなデータを簡単に取得できたとき。そして、私はそれを同じように簡単に保存することができました:
ORM :: store($ user);
この場合、ユーザーオブジェクトをデータベースに保存するだけでなく、「ロール」オブジェクトに加えた変更も保存します。したがって、リポジトリパターンで必要なような余分な作業は必要ありません...
だから私の質問は基本的に、なぜ私はORMでリポジトリパターンを使用したいのですか?そのパターンを使用するチュートリアルを見てきました(Doctrineのように)。しかし、それは本当に私には意味がありません...ORMと組み合わせて使用するための説明はありませんか?