1

何かがビューまたはコントローラーに入るかどうかをどのように判断しますか?

以下に具体的な例をいくつか示します。

  • Zend_Captcha: コントローラがキャプチャを生成してビューに渡しますか、それともビューがキャプチャを生成しますか?
  • Zend_Alc: ビューのセグメントをユーザーに表示するかどうかをビューが決定しますか?それとも、使用可能なアクションに応じて複数のビューがあり、コントローラーが表示に適したビューを選択しますか?
  • Zend_Session: ビューは、セッション データに基づいてビューを表示しているユーザーを追跡しますか?それとも、コントローラーによって解析され、何らかのパラメーターとしてビューに提示されますか?

どのコンポーネント (モデル、ビュー、またはコントローラー) が何をすべきかについてのルールまたはガイドラインは、私が見ることができる場所に書かれていますか? Zend Framework サイトのドキュメントにはそれがありませんでした。

4

2 に答える 2

11

一般的に言えば、この質問はどの MVC フレームワークにも当てはまります。私が使用するガイドラインは次のとおりです。

  1. スキニーコントローラー。可能であれば、モデルのビジネス ロジックを呼び出して結果をビューに渡すだけのコントローラーを用意してください。

  2. ビューは、ビュー ロジック以外は何もしません。キャプチャの生成、ACL に基づくリンクの表示と非表示など、ユーザーとの視覚的な対話に関連するあらゆることを行います。合計を計算しないでください。モデルでロジックを呼び出さないでください。ビジネス ロジックを実行しないでください。通常、ビューからセッションを読み取って、データ/リンクを表示または非表示にすることは問題ありません。ただし、セキュリティをこれに依存しないでください。コントローラもセキュリティで保護してください。

  3. 脂肪モデル。できるだけ多くのビジネス ロジックをモデルに入れます。そうすれば、コントローラー間でそれらを共有できます。コントローラーでモデルの要素を反復処理したり、特定のルールに基づいて値をリセットしたり、複雑なビジネス ロジックを実行したりする場合は、そのロジックをモデル レイヤーに取り込む方法を見つける必要があります。

お役に立てれば。

于 2008-10-08T16:21:47.640 に答える
2

Capcha の場合、ビューで生成できます。Acl にはビューを使用します。Zend_Session は、コントローラとビューの両方からアクセスできます

于 2008-10-08T14:47:41.870 に答える