「便利な」クエリを実装するためのベスト プラクティスについて質問がありました。この記事を参照して:
エンティティ マネージャが IndexController で使用できることは明らかです。彼は findAll を実行して、データベースの内容全体を一覧表示します。しかし、データベースに「バンド」列を追加してマッピングし、ビートルズのすべてのアルバムをクエリしたい場合はどうなるでしょうか。ビートルズのアルバムがコードベース全体でかなり頻繁に使用されていたとしたらどうでしょう (弱い例ですが、わかります)。
EM はコントローラーでのみ使用できるようで、クラスは実際にはサービス ロケーターを認識していないようです。
- コントローラーで DQL を分割し、必要なすべてのコントローラーで DQL を繰り返しますか? (あまりドライではない)
- 代わりに、エンティティまたはモデルから EM へのアクセスを微調整しますか?
Zend_Db の単純な使用法ほど単純ではないように思えます。Zend_Db のように、好きな場所でクエリを発行して、不正を行って物事を成し遂げることができます。
Table Gateway の世界から「本物の」ORM に移行するのを手伝ってくれてありがとう。