1

私は最近、これが示唆された古い記事を読みました

$ uses配列の使用を避けてください
完全に無関係なモデルが2つありますが、一方から他方のコントローラーに情報が必要です。最初のアイデアは、それらを$uses配列に追加することです。ねえ、それは簡単で、仕事を成し遂げます。さて、長い話を短くするために、それは悪い習慣です。モデルのバインディングについて考え、モデルが実際に相互に関連していないことを確認してください。ユーザーモデルがCommentRatingと完全に関連していない場合もありますが、ユーザーコントローラーで絶対に必要です。たまたま、User-> Post->Comment->CommentRatingのように見えます。これは最初は明らかではないかもしれない深いバインディングですが、このようなモデルのチェーンを採用することで、本当に必要のないときに$uses配列を使用することを簡単に回避できます。

読みやすさ/保守性のために、私はCommentRatingをuses配列に入れてから、$this->CommentRatingを直接呼び出すことを好む傾向があります。

$ uses配列を使用することは本当に悪い習慣ですか?もしそうなら、なぜですか?

4

1 に答える 1

1

その引用は、長い話を少し短くしすぎます。なぜそれは悪い習慣ですか?彼は一つの理由さえ与えません。私はあまり注意を払わないでしょう。

私は専門家ではありませんが、コードの可読性と常識が、わずかなパフォーマンスの向上や、$usesを回避することで得られるものよりも重要な場合が確かにあります。User-> Post-> Comment-> Ratingのようなあいまいなモデルチェーンの代わりに、$usesを引き続き使用します

編集:@tigrangが追加したように、Cake 2でのモデルの遅延読み込みでは、とにかくパフォーマンス上の利点は実際にはありません!

于 2012-10-16T22:07:46.277 に答える