codeigniter (php フレームワーク) で使用するのに最適な ORM は何ですか?またその理由は何ですか?
5 に答える
DrColossos が示唆するように、Doctrine は優れた強力な ORM であり、CI アプリケーションに簡単にプラグインできます。CodeIgniter 2 と Doctrine 2 については、 Setup up CodeIgniter 2 with Doctrine 2 the Right Wayに関するこのチュートリアルを使用できます。
私は Active Record を使用することを好みます。それはすでにそこにあり、私のニーズを満たさない状況に遭遇したことはありません. CodeIgniter の上に別の ORM を使用したことはありませんが、ほとんどの状況で不要なレイヤーが追加されるのではないかと思います。
組み込みの Active Record ツールでは提供されないことは何ですか?
質問は非常に曖昧で、ユースケースに完全に依存します。
とにかく、CI の DB アクセス (IMO の奇妙な方法) を操作するよりも、クエリを作成する方が好きだからです。これは、CI 実装よりもはるかに OO の感覚があり、通常の SQL と同じこと (複雑な結合、サブ選択、より高度な WHERE 条件) を実行できるため、非常に強力です。
また、クエリのプロセスにジャンプできるため、クエリがコミットされる前、コミットされた後、ルールを適用するなどのアクションを実行できるという意味です。CIでこれを簡単に見たことはありません。
ドキュメントの例を読んで、私が話していることを確認してください。
CI への統合は、Doctrine を使えば簡単です (インターネット上には多くの投稿があり、SO にもいくつか投稿されています)。
どちらを選択しても、ORM は非常に軽量なフレームワークに (CI のベース フットプリントと比較して) 膨大なオーバーヘッドを追加することに注意してください。そのため、強力なデータベース機能とさらなる抽象化のために軽量性を犠牲にしています。
ほとんどの場合、別の抽象化レイヤー(ORM)を使用すると大きなペナルティを支払うことができると思うので、アクティブレコードを使用するだけでよいと思います。
1 つのオプションは DataMapper ORM です。