2

すべてのコントローラーでいくつかの共通の動作が必要です。BaseController を用意して、すべてのコントローラにそのクラスを拡張させるのは良い考えですか? Fatal error: Class 'BaseController' not foundもしそうなら、エラーを回避する正しい方法は何ですか。

4

4 に答える 4

7

確かにそれは一般的なアプローチです。

しかし、ZF プロジェクト リーダーの Matthew Weier O'Phinney による記事では、アクション ヘルパーがどのように同じ利点をより柔軟に提供できるかを説明しています。

特に、共通の基本コントローラーは、多くの場合、すべてではなく複数のコントローラーで使用される機能のゴミ捨て場になるため、やり過ぎになります。アクション ヘルパーは、遅延読み込みの一種であり、必要なときに必要な場所で機能を正確に呼び出します。

また、アクション ヘルパー ディスパッチ フック - init()preDispatch()および- を使用すると、コントローラーごとpostDispatch()にプラグインのような機能を自動化できます。

私はアクションヘルパーに行きます。しかし、ほとんどのものと同様に、YMMV. ;-)

于 2011-02-19T14:39:45.317 に答える
4

いいえ、そうしないでください。アクションヘルパーを使用して、コントローラーに機能を追加します。ベースコントローラーを使用すると、すぐに複雑になり、使用できなくなります。アクションヘルパーを使用すると、柔軟性が高まります。

于 2011-02-19T09:35:41.040 に答える
3

はい、これは良い考えであり、非常に一般的なパターンです。リファレンスZFマニュアルの「アクションコントローラーのサブクラス化」セクションを確認してください。

于 2011-02-19T06:21:53.273 に答える
2

はい、それは良い考えです。

致命的なエラーを回避する正しい方法は何ですか:クラス'BaseController'が見つかりませんエラー。

このエラーを回避するために、Zend_Loaderについてもっと読む必要があります

于 2011-02-19T08:34:11.890 に答える