2

私はこのフレームワークを初めて使用し、プラグインを使用して Controller メソッドを拡張/オーバーライドしようとしています。これが間違った方法である場合は、お知らせください。拡張コントローラーを改ざんしないという点で、ソリューションをモジュラーにしたいだけです。これは私が欲しいものです..

MyController extends AppController{

function index(){}

}

私はプラグインを持っています

MyPlugin extends MyController{

function index(){}

}

MyController->index() が呼び出されると、MyPlugin->index() が実行されます。どんな助けでも大歓迎です。

4

1 に答える 1

0

あなたが求めているのは、PHPではサポートされていないある種の「逆継承」です(JavaまたはObjectiveCのカテゴリのアスペクトを検討する場合があります)。

私が理解している限り、次のような状況があります。

"3rd Party App's Controller class" extends "CakePHP's Controller class"

外部のアップストリームから両方のクラスを取得し、どちらのアップストリームも犠牲にすることなくサードパーティ アプリのコントローラーを変更したいと考えています。これは言語では不可能であり、私が知る限り、CakePHP はフレームワーク ソリューションを提供していません。

ルーティングを変更することで目標を達成できる場合があります。つまり、リクエストをMyControllerカスタムコントローラーにリダイレクトし、そこから のアクションMyPluginを呼び出します。MyController

于 2012-11-15T09:46:20.723 に答える