私はMVCパラダイムを使用するフレームワークを使用しています。それはCodeIgniterですが、私の質問は具体的にフレームワークではありません - より一般的には、MVCを使って作業する場合のベストプラクティスです。MVCとプログラムの状態 - モデルをダムにする必要がありますか?
私はいくつかの状態変数(ユーザー選択、いくつかの一時的な設定、いくつかのデータフィルタリングオプション)を維持するために$ _SESSION変数を使用しています。これはやりやすいほど簡単ですが、これらの変数をモデルとコントローラの両方に使用していることが分かりました。時々私はコントローラーで1つを更新し、モデルでそれを調べます。これは私に、モデルをすべての設定を "認識"させるのが良い考えではないかもしれないので、面白い "臭い"になりました。モデルはデータを取得/操作する要求を受け入れるだけでなく、外部変数を参照しなくても要求に明示的に関係していたものにのみ関係するべきですか?
ここに例があります:私は$ _SESSION ['regionFilter']というセッション変数を1つ持っています。これはコントローラで作成および更新され、ユーザーがドリルダウンしたい販売地域を表します。コントローラがモデルから何らかのデータを要求すると、というモデルを持つモデルがになり、$ _SESSION ['regionFilter']変数が検索され、データベースのSQLを作成するときに使用されます。それは、プログラムの状態に関してモデルを "ダム"にし、$ _SESSION ['regionFilter']変数を必要に応じてどうにかしてバンドルして、その要求に変数を束縛させるようにしているようです。
どのような考えですか?ありがとう!
編集:議論のためのおかげで、人々。私は重複する質問を知っていますが、トピックに関する一般的な議論を見つけるのは苦労しました。「MVCモデルプログラムの状態」を検索した結果、ASP.NET MVC固有のディスカッションに関する疑問が浮き彫りになりました。詳細。
私は閉鎖されたとしてマークしました。あなたの考えをもう一度おねがいします!
[MVCの理解:モデルの "Fat"の概念とコントローラの "Skinny"の概念は何ですか?](http://stackoverflow.com/questions/3109715/understanding-mvc-whats-the-concept-モデルのスキン・オン・コントローラー) – Gordon
@Gordon、私は2つの質問が関連していると思うが、重複していない。 –
私はこの質問が主に参照された質問のサブセットと重なっていると言いたいと思います(残念なことに、私はVennダイアグラムを入力できません)。 – David