私はウィジェットに基づいてウェブサイトを構築しています。私はいくつかのメソッド、モデル、およびいくつかのビューを持つ一般的なWidgetInstancesControllerクラスを持っています。今、このクラスを拡張することが可能かどうかを知りたい。言い換えれば、各ウィジェットは別のクラスであり、WidgetInstancesControllerクラスを拡張する必要があります。これらのウィジェットのクラスをapp/widgets/
の下に保存したいと思います。また、これらのウィジェットは特定のモデルを持たず(親WidgetInstanceモデルを使用するため)、特定のビューを持つことができます。CakePHP拡張コントローラ(のみ)
どのように私はこれを行うことができます上の提案は非常に高く評価される!
問題なく拡張できますが、わかっている限り、コントローラは/ app/controllersにある必要があります。コントローラデータを上書きする必要があるので、ヘルパーやコンポーネントとしてウィジェットを持っていると思うかもしれません。 – JohnP
ヘルパーは確かにそうではありません。コンポーネント...私は分かりませんが、リクエストごとに数十のコンポーネントをロードするにはあまりにも多くなります(ユーザーがアクティブなウィジェットの数によって異なります)。あるいは、 'app/controllers/widgets /'にウィジェットを持つフォルダを作成し、単に親クラス(WidgetInstancesControllers)を拡張しますか?しかし、ウィジェットのコントローラからアクションをロードまたは呼び出す方法は?また、拡張しているクラスからモデルデータにアクセスできるようになりますか? – linkyndy
コンポーネントは、必要に応じてロードして、すべての光を維持することができます。あなたが呼んでいるコントローラのインスタンスを取得するので、モデルにアクセスすることができます。 – JohnP