0

プラグインの作成に関するCakePHPのドキュメントを読んだ場合。PluginAppModelと基本クラスがとクラスPluginAppControllerから拡張されていることを明確に示しています。プラグインを使用してアプリケーションに実装されます。AppModelAppController

これは私には非常に危険なようです。

プラグインは、アプリケーションがこれらの基本クラスで構成した可能性のあるコールバック、コンポーネント、ヘルパーなどを制御できません。

CakePHPライブラリの基本クラスだけをPluginAppModel/拡張することに問題はありますか?PluginAppControllerのようModelController

プラグインがこれらのアプリケーション固有のクラスを拡張する必要がある理由のロジックを誰かが説明できますか?

4

1 に答える 1

2

何をするにしても、App *クラスを継承チェーンから除外するか、含める場合は除外します。これらのクラスで人々が何をするかは予測できないため、失敗する可能性のあるポイントは常にあります。

可能性が低いシナリオは、App *基本クラスを拡張した場合、拡張しない場合よりもプラグインで問題が発生することです。

AuthとSessionComponentは、コントローラーの場合、App*クラスを拡張する必要がある理由です。AppModelの動作は別のものです。

プラグインがControllerクラスまたはModelクラスのプロパティの特定の(変更されていない)状態に依存している場合、私の意見では、そのプラグインを構築しているときに何か間違ったことをしました。構成オプションを提供するか、継承されたプロパティとアタッチされたコンポーネントおよび動作の状態を確認することにより、プラグインを柔軟に保つことをお勧めします。

プラグインに本当に落とし穴がある場合(それでも間違っていると思います)、ドキュメントを読んだ人が適切に統合できるように、プラグインをドキュメント化する必要があります。

于 2013-02-03T20:00:25.460 に答える