0

Catalystアプリケーションをリファクタリングしようとしていますが、コントローラーに共通の基本クラスを導入したいと思います。このベースコントローラーは、要求ごとにいくつかのデータをロードし、他のいくつかのデータをスタッシュに入れます。隠し場所にたどり着くのに苦労しました。簡単な解決策はauto、ベースコントローラーにデフォルトのアクションを実装することです。autoこれは機能しますが、派生コントローラーで常にスーパーを呼び出すことを忘れないでください。これは忘れがちですが、より良い解決策はありますか?言い換えれば、派生コントローラーを壊すのはそれほど簡単ではないリクエスト処理を利用する簡単な方法はありますか?

4

1 に答える 1

3

目標を達成するために継承は必要ないと思います。アプリケーションにとって継承が良いアイデアである理由は他にもあるかもしれませんが、通常、継承はクラス構成の他の方法がより適切な場合に過剰に使用されるようです。

特にこの場合、Catalyst は、ルート コントローラーでメソッドを指定できるようにすることで、この機能を提供します。このメソッドは、リクエストごとに、より特定のコントローラーautoのメソッドの前に常に呼び出されます。auto継承は不要です。

于 2009-12-26T18:50:57.307 に答える