2012-02-28 13 views
4

Zend View Helperでデータベースマッパーを使用するのは良い方法ですか?私の場合、このヘルパーは私に<div>というボックスをリアルタイムで変えてくれるので、私のアプリケーションにはすべてのビューに表示されます。私はおそらくそのオブジェクトをコントローラーのデータベースからロードし、毎回表示するように割り当てることはできません。Zend View Helperでのデータベース接続

誰かが同じようなZendのビューヘルパーでの作業の際に従わ良いプログラミングプラクティスを伝えることができれば、それは本当に役立つだろう:$this->view->variable = ... ; でビューヘルパーのビューに何かを割り当てることがOKであれば

  • Viewヘルパーでモデルを作成して使用することができればOKです。
  • あなたの第二と第三弾ポイントは限り、あなたは、任意の論理的なものをしないと、私には正しいように見える$this->view->baseUrl('...');
+0

私はこのために、AJAXを使用していないが、私が話していdiv要素は、その都度、任意のページに対する要求がログインし、任意のユーザーによって作られて作られません。私のようなデータベースマッパーについて尋ねた私の最初のポイントで – ShayanK

答えて

2

を行うことによって、のようなビューヘルパー内部Zend_Viewのに利用可能な方法を使用することがOKであればあなたのビューからあなたのモデル。モデルとビューのリンクは読み取り専用でなければなりません。

最初の点については、ビューに何も割り当てる必要はありません。ヘルパーを表示するには、returnビューに直接HTMLを出力する必要があります。

最初の質問については、このヘルパーに特化したビューヘルパーを作成して、ビューヘルパーとマッパーの間の単純なプロキシとして使用できます。あるビューヘルパーは任意のマッパーにアクセスでき、他のビューヘルパーはこのビューヘルパーを使用してマッパーを取得できます。

のはトリグヴェReenskaugは、MVCについてどう思うか見てみましょう:

モデルは、知識を表す

モデル。モデルは単一のオブジェクト (むしろ面白くない)でもかまいませんし、オブジェクトの構造でもかまいません。

一方、モデルとその 部分との間には、モデルの所有者 が知覚している表現された世界との間に1対1の対応があるべきです。

ビュー

ビューは、モデルの(視覚的に)表現です。 は、通常、モデルの特定の属性を強調表示し、他の人を抑制するでしょう。 その他。したがって、プレゼンテーションフィルタとして機能します。

ビューはモデル(またはモデルパーツ)に添付され、質問からモデルからのプレゼンテーションに必要なデータ を取得します。 は、適切なメッセージを送信してモデルを更新することもできます。これらのすべての 質問とメッセージは、モデルの用語にする必要がありますので、 ビューは、それが表すモデル の属性のセマンティクスを知る必要があります。

コントローラ

コントローラは、ユーザとシステムとの間のリンクです。画面上の適切な場所に 自身を表示するように関連するビューを配置することによって、ユーザーに入力を提供します( )。 コマンドおよびデータを与えるためのメニューまたは他の手段をユーザに提示することによって、ユーザ出力のための手段を提供する。コントローラはそのようなユーザ出力を受信し、 はそれを適切なメッセージに変換し、 のメッセージを1つ以上のビューに渡します。

+0

データベースに直接接続するクラス。私の質問は、ビューヘルパーでデータベース接続とマッパーを 'モデル' – ShayanK

関連する問題