2011-07-17 17 views
3

私はZend Frameworkの初心者です。私はドキュメントを理解するのが難しいと感じています。 私が使用している唯一のPHPフレームワークはCodeIgniterでした。インスタンス化されたオブジェクトはどこにzendフレームワークに格納されますか?

私は図書館を利用して、この方法に使用されています:

//load the My_Library class and assign the object to $this->myLibrary property 
$this->load->library('my_Library'); //CodeIgniter way 

public function index() 
{ 
    $this->my_Library->method(); //make use of the methods in the loaded library 
} 

は、これまでのところ私は、ブートストラップクラスで言う、このコードはZendの中でどのように機能するかを考え出すよ:

protected function _initSetDoctype() 
{ 
     $doctypeHelper = new Zend_View_Helper_Doctype(); 
     $doctypeHelper->doctype('XHTML1_STRICT'); 
} 

とで私たちが置くことができるlayout.phtmlファイル:

<?php echo $this->doctype() ?> 

私の質問は:Zend_View_Helper_Doctype(); ZFはどのようにして$this->doctypeを割り当て、これを表示可能にしましたか? これらの値がビュー・オブジェクトを更新するストレージがありますか?

私はその流れをzendでどのように動作させるかを調べるために、リソースの使い方をよりよく理解することができます。 @ _ @ 大変ありがとうございました!

+0

この質問には、デバッガを起動するだけで答えることができます。本当の質問ではないと投票する投票。 – markus

+0

フレームワーク、lolを知ったら、ドキュメントはそれほど悪くない!別に言えば、ZFをスタンドアローンオブジェクトとして分離したり、MVCパターンで分離したりするのは貧弱な仕事でした。いくつかの例では、クラスをMVCに適切に実装する方法についての情報が完全になく、他の例はMVCパターンでしか機能しません。 –

答えて

2

通常、ZFはZend_Registryを使用して、作成するオブジェクトのインスタンスを格納します。指定した具体例(例:_initSetDoctype)は、コンストラクタZend_View_Helper_Doctypeが既にZend_Registryに格納されているかどうかをチェックするため動作します。あなたのブートストラップでは、new Zend_View_Helper_Doctype()はdoctype情報をレジストリに格納します(最初に作成されるため)。また、layout.phtmlではレジストリに格納されている値が取得されます。

Zend_View、Zend_Layoutなどの他のZFリソース(またはオブジェクト)も格納され、レジストリを介してアクセスされます。

もちろん、自分のオブジェクト(または何でも)をレジストリに保存することもできます。この方法で、ZFアプリのあらゆる場所でそれらにアクセスできます。

+0

私は見る!私はこのフレームワークを何時間も精査してきました。これはCodeIgniterとはまったく異なります。どうもありがとうございました! – Rei

関連する問題