2011-08-14 20 views
0

をZendのビューオブジェクトを使用して:ので、私はこのチュートリアルを見ていた永続的なストレージとして

http://devzone.zend.com/article/3412

と、それは、Zend FrameworkのMVC内

」は、ほとんどの場合、プレースホルダには意味がありませんと言っています。デフォルトでは、すべてのコントローラとレイアウトの間で同じビューオブジェクトが使用されるため、ビュー変数を永続的なストレージメカニズムとして利用することができます。

誰かが私にこの「永続的ストレージメカニズム」の仕事を説明できますか?私はテスト=「何か」>の$ this - を設定し、ビューファイルに行ってみました、その後、別のビューファイルに移動します$ this-エコー>テスト

が、何も....

+0

もっと明示できますか、おそらくコードを表示できますか?これは、1つのビュースクリプトが他のビュースクリプトを含んでいた単一の要求に対してですか? –

答えて

2

同じリクエスト内でビュースクリプトを呼び出し、シーケンスが正しい場合は、テストが機能します。

view-script1.phtml 
<h3>Test one</h3> 
<p>nothing</p><?php $this->test = 'something'; ?> 

view-script2.phtml 
<h3>Test two</h3> 
<p><?php echo $this->test; ?></p> 

あなたが正しい順序で2つの<h3>のタイトルが表示されない場合、または1つは、あなたが正しくビュースクリプトを呼び出していませんその後、不足しています。

さらに、永続ストレージの最も良い例はコントローラです。他のアクションやコントローラに転送する場合は、それらを介してデータを渡すことができます

controller1/actionOne 
$this->view->test = 'something'; 

controller2/actionTwo 
$this->view->test .= ' more'; 

in your viewscript 
echo $this->test; // will print "something more" 
0

永続性を思いついたんZend_View_Helper_Placeholder_Registryクラスが使用する静的関数レジストリは、静的関数であるため、このプレースホルダのサブクラスであるビューヘルパのコンテキストで永続性と呼ばれる多くのオブジェクトと共有できます。

関連する問題