CakePHPのHABTMプラグインテーブルの命名規則(1.3用)
-
20-09-2019 - |
質問
私は、プラグインによって使用されるテーブルのための命名規則は、一般的にプラグインの名前で始まり、その後、モデルは複数形を知っています。例えば、私もPollPollというモデル次いで得られたテーブル名がpoll_pollsとpoll_tagsだろうPollTagと呼ばれる別のモデルとポーリングと呼ばれるプラグインを、持っていたと言うことができます。彼らはまたようにテーブル名の規則ものですHABTM関係を持っているでしょうか?それはpoll_pollsとpoll_tagsがモデルに関するが最初poll_は、プラグインの名前を表すので、それは理にかなって少し冗長であるが、私は、それがpoll_poll_polls_poll_tagsと考えている。
はまた、任意の命名規則は、1.3でのプラグインのために変更されましたか?上記の正しい述べていますか?
解決
ケーキ1.3(私はまだそれを使用していない)についてわからないが、これあなたがしている場合は、右これはモデルとの関係で、おそらくでjointableを慣例を破り、定義の完全に受け入れ場合、キーと外部キーのように聞こえますプラグイン。
なぜ、あなたのプラグインがテーブルを結合する必要がありませんか?設計上の問題のように思えます。おそらく、そこにこれが必要な場合はあるが、私は、プラグインとのHABTM関係を持っていた場合、私は、プラグインのテーブルにmodelname
列を追加するのではなく、私はプラグインを使用していた各モデルのための新しいテーブルを作成する必要があります。
他のヒント
これは、「プラグインによって使用されるテーブルは、一般的にプラグインの名前で始まり、その後、モデルは複数形。」と、まだ実際に大会ではありません
考え方が導入された唯一の場所は、ブックの中で例であります、これは実際には...あなたはコントローラ名で創造的、またはクラス名にプラグインの名前を付加したい場合がありますが、親アプリケーションとの名前空間の衝突を避けるために、比較的ユニークなプラグインコントローラの何かに名前を付けることをお勧めします」、と言います。 "
あなたのテーブル/モデル/コントローラ/ビュー名は、通常のCakePHPの命名規則に従い、名前空間の衝突を避けるために合理的な予防措置を講じなければなりません。だから、プラグインバーの「foo_order」モデルの「foo_orders」テーブルを持っていることは完全に罰金だろう。