オリジナルを変更せずにCakePHPプラグインを拡張またはオーバーライドする

私はプラグイン(この場合はAuthake)を使用していますが、機能の一部をオーバーライド/拡張​​したいのですが、どうやってこれをやっていくのか分かりません。私はビューをカスタマイズする方法を見つけ出すことができました(フォルダ
‘/
app/views/plugins/authake’を作成しましたが、プラグインのモデルとコンポーネントを変更/上書き/拡張する方法が不思議です)。

ベストアンサー

私はあなたがモデルの機能やプラグインの動作を拡張したいと思っていますか?

たとえば、 Sequence プラグインの一部である
Sequence 動作の機能を次のように拡張できます。

app/models/behaviorsで新しいファイルを作成し、それをextended_sequence.php

このファイルでは、 SequenceBehavior を拡張して
beforeFind メソッドをオーバーライドする
ExtendedSequenceBehavior
クラスを作成します。それは次のようなものに見えるでしょう:

<?php
/**
 * Import the SequenceBehavior from the Sequence Plugin
 */
App::import('Behavior', 'Sequence.Sequence');

/**
* Extended Sequence Behavior
*/
class ExtendedSequenceBehavior extends SequenceBehavior
{

  /**
   * Overrides the beforeFind function
   */
  public function beforeFind(&$model, $queryData)
  { 
    /**
     * Do something different here such as modify the query data
     */

    /**
     * You could still call the original function as well
     */
    parent::beforeFind(&$model, $queryData);
  }
}

?>

ExtendedBehaviorクラスを定義する前に、CakeのApp ::
importを使ってSequenceビヘイビアをインポートする必要があることに注意してください。

拡張クラスを使用するようにモデルを更新します。

var $actsAs = array('ExtendedSequence');

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です