1

MVC パターンに関して、ビュー レイヤーは HTML データを「返す」関数であると想定されていますか、それともビュー レイヤーは実際には HTML データそのものですか?

4

5 に答える 5

4

Web 用の MVC にインスパイアされたパターンのビュー クラス (従来の MVC を Web に実装するのは非常に難しく、PHP だけでは不可能です) は、プレゼンテーション ロジックを担当します。次に、リクエストへの応答を作成し、複数のテンプレートをジャグリングします。

モデルレイヤーから選択したビューに情報を取得する方法は、MVC にインスパイアされたどのパターンが実装されているかによって大きく異なります。MVP または MVVM を使用している場合、情報はコントローラーによって提供され、ビューはパッシブになります (ただし、ビューはダム テンプレートではありません)。Model2 MVC または HMVC パターンを使用する場合、ビューがアクティブになり、モデル レイヤーからの情報が要求されます。

このビューは情報を取得すると、結合するテンプレートを決定します。または、テンプレートが必要な場合でも。そして、レスポンスを作成します。

各ビューが生成する応答は、HTML、JSON、XML、または単なるプレーン テキストにすることができます。または、必要に応じて、HTTP ヘッダーのみを送信します (リダイレクトを行う場合など)。これはすべてプレゼンテーション ロジックの一部です。

于 2012-07-29T17:43:13.513 に答える
3

モデル、コントローラー、およびビューの境界線は、次のように表示できます。

/* model models/post.php */

<?php
  class Post {
    public static all() {
      return Array(...);
    }
  }
?>

/* controller /posts/index.php */

<?php
  require "../../models/post.php"
  $posts = Post.all();
  require "../../views/posts/index.php"
?>

/* view /views/posts/index.php */

<?php foreeach ($posts as $post): ?>
  <p><?php echo $post['name']; ?></p>
<?php endforeach; ?>

イデオロギー的には単なる関数かもしれませんが、一般的な慣行はテンプレート エンジンのテンプレートのようなものです。したがって、ビューレイヤーはhtml + data insertions(取得方法と理由のロジックなしで)です。ここでもイデオロギー的には関数でもありますが、たとえばフレームワークのプログラミング言語の関数ではありません。

于 2012-07-29T08:30:51.013 に答える
0

ビューは「テンプレート」
モデルは「データ」
コントローラーは「コネクター」であり、アルゴリズムの場所です。

于 2012-07-29T08:51:50.077 に答える
0

ビューレイヤーは、プレゼンテーションとしてクライアントに表示したいものを受けます。ほとんどの場合、それは HTML、CSS、および Javascript であり、XML および JSON も使用できます。

一般的に、

コントローラーはモデルにデータを提供するように依頼します。

コントローラーは、必要に応じてこのデータを変更できます。

コントローラーはデータを View に送信し、template/html を使用して表示します。

于 2012-07-29T09:11:52.920 に答える
-1

View Layer は、HTML データを返す関数です。

于 2012-07-29T08:25:41.323 に答える