私は比較的オブジェクト指向プログラミングの新機能です。私は概念をかなり理解していますが、実質的に言えば、Zend Frameworkアプリケーションでのモデルの最適な使用方法に関する情報を見つけるのは非常に困難です。Zend Framework:モデルとビューの使用、ベストプラクティス
具体的には、データベーステーブルを使用しないモデル(何も拡張していません)があります。 getterとsetterを使用して保護されたメンバーにアクセスします。ビューにこのモデルを最適に表示する方法に苦労しています。私は私のビューテンプレートにロジックを望んでいないが、私は次のような状況で自分自身を見つける:私のコントローラで
:私のビューテンプレートで
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
:
<h2><?= $this->object->getName() ?></h2>
私は「ドンビューテンプレートで関数を呼び出すのが本当に好きですが、これを行うためのより良い方法はわかりません。私は私のモデルのメンバーはパブリックになりたくないが、私は基本的に同じ結果を達成したい:
<h2><?= $this->object->name ?></h2>
私は私のコントローラは、モデルについてのすべてを知っていることのすべての作業を行うにはしたくありません。
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
Zend Frameworkでモデルを使用するベストプラクティスは何ですか? Zend Frameworkのこのモデル/ビューのジレンマを理解するのに役立つチュートリアルをお勧めしますか?
これは実際にはやり方が悪い方法です。フォームとの間でシリアル化する必要があるかどうかに関係なく、すべてのプロパティに任意のアクセス権を与えるだけでなく、実際に求められているマッピングの概念でモデルをオーバーロードします。 – Saem
フォームロジックをモデルに組み込むことで、ビューとモデルのミックスも悪くなります。すでに述べたように、デフォルトの動作をオーバーライドするのは非常に簡単で、愚かな定型的なgetterとsetterを作成する必要はありません。 –
Zend_Db_Table_Rowクラスを見ると、Zendは実際には同様の原則を使用して、テーブルのフィールドとその値を公開しています。 –