CakePHPのプラグイン(plugin)について第2弾
プラグイン(plugin)の基本ができたら次のステップです。
ステップというより注意点かもしれません(汗
プラグイン(plugin)は開発には大変便利な機能で、一度作成したアプリケーションを
再利用可能であれば開発すればするほど後々楽になります。
実際プラグイン(plugin)はよく使います。
しかし、プラグイン化(plugin)した際に注意点があります。
それはモデルのアソシエーション部分です。
通常のアソシエーション記述とは異なるのです。
例えば「product」というモデルと「category」モデルがアソシエーションしているとします。
その場合
var $belongsTo = array( 'Category' => array( 'className' => 'Category', 'foreignKey' => 'category_id' ) );
が基本の記述ですが、プラグイン化(plugin)の場合
//プラグイン名を「plugin1」とします var $belongsTo = array( 'Category' => array( 'className' => 'Plugin1.Category', 'foreignKey' => 'category_id' ) );
がプラグイン化(plugin)での記述になります。
しかしCakePHPは上記の記述をしなくても動く場合があります。
なぜ説明したんだと言われそうですが。。。
それはプラグイン(plugin)側の「category」に独自のメソッドがある場合、
上記のように記述していないと、そのメソッドを呼び出すことができません。
これは「app」側にある「category」モデルを参照しているためにおきる現象です。
この注意点を考慮してプラグイン(plugin)を開発してみてください。
コメント