5

私は MVC フレームワーク (具体的には、PHP のCodeIgniter ) を使用しています。できる限り「ベスト プラクティス」に従うようにしていますが、MVC の経験はあまりありません。コントローラー内のセッションからデータを取得するのは悪い習慣ですか? たとえば、特定のセッション値が「foo」または「bar」であるかどうかをモデルに「尋ねる」必要がありますか、それともコントローラー内で直接行う必要がありますか? セッションデータは技術的にはデータであるため、モデル内で行う必要があると考えていますが、確認したいだけです。明確にするために、私はセッション データをデータベースにまったく格納しないので、クエリを実行していません。

4

1 に答える 1

3

モデルは通常、ある種の長期ストレージに永続化されるすべてのドメイン オブジェクトを処理します。それらには、特定のアプリケーションによるそれらの使用に関係する一時的な値がある場合とない場合があります。

コントローラーは、情報を正しくルーティングして表示するために、必要なデータを照会する必要があります。ドメイン オブジェクト (モデル) を直接操作し、コントローラーが使用する API を提供する「サービス」レイヤーを作成すると役立つ場合があります。コントローラーに含めない主なものは、ビジネス ロジックです。

たとえば、コントローラーが参照ページを取得し、ユーザー フローに関してそのデータを使用して何らかの処理を行うことは合理的です。ただし、検証は別として、たとえば、アカウント間で送金される金額を調べることはおそらくすべきではありません。インスタンス化して正しいドメイン オブジェクトと連携するサービス オブジェクトにそれを渡す必要があります。

コントローラーに入れるロジックについて尋ねる質問:

  • このロジックは、必要な Model オブジェクトを理解するのに役立ちますか? そうでなければ、ここにいるべきではありません。
  • このロジックは、ユーザーへの応答を作成するために使用される View オブジェクトを理解するのに役立ちますか? そうでなければ、ここにいるべきではありません。
于 2012-07-18T21:50:59.030 に答える