1

過去 2 か月間で Zend 用に作成したコードの一部を見ていると、フロント コントローラーの初期化に矛盾が見られます (私は初心者であるため)。

私は時々私がこれをしたことがわかります

$frontController = Zend_Controller_Front::getInstance();

そして他の時には私はこれをしました

$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');

何を考えていたのかわからない。私はおそらく例に従っていたと思います。これら2つに実際の違いがあるかどうか、誰でも知っていますか?

4

3 に答える 3

4

1 つは、どこからでもフェッチできる Singleton オブジェクトの呼び出しです。もう 1 つは、「FrontController」と呼ばれるリソースを取得するためのアプリケーション ブートストラップへの呼び出しです。

理論的には、「FrontController」と呼ばれるリソースは、Zend のものを使用したくない場合、カスタム フロント コントローラーの実装など、その名前でブートストラップに割り当てられたものであれば何でもかまいません。

実際には、どちらもインスタンスを取得しZend_Controller_Frontます。

于 2010-11-09T13:41:15.273 に答える
2
Zend_Controller_Front::getInstance()

最初のメソッドは、 Zend_Controller_Frontへの直接呼び出しです。

$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');

2 番目の方法は、 Zend_Application_Bootstrap_ResourceBootstrapperZend_Applicationを使用します。Zend_Application を初期化すると、 FrontControllerリソースが登録さ$this->bootstrapれ、ブートストラップ ファイルの呼び出しで初期化されます。

後者の方法は Zend_Application と Zend_Controller の両方を必要としますが、最初の方法は Zend_Controller のみに依存します。

于 2010-11-09T13:40:54.287 に答える
1

同じ種類の2つだと思います;-)

于 2010-11-09T13:32:51.283 に答える