-2

各モジュールにモジュール ブーストラップ ファイルがあり、これらはファイル システムの順序でロードされています (私は信じています)。指定した特定の順序でロード/実行するにはどうすればよいですか?

アプリケーションに 4 つのモジュールがあります。

1. 1module
2. 2module
3. 3module
4. 4module. 

すべてのモジュールには、ファイル システムの順序に従ってロードされる独自のブートストラップがあります。上記の場合。アプリケーションは、上記のモジュールのブートストラップを次の順序でロードします。

1. loads bootstrap of module 1
2. loads bootstrap of module 2
3. loads bootstrap of module 3
4. loads bootstrap of module 4. 

しかし、モジュールのブートストラップを次の順序または指定された順序でロードするのが好きです。

1. loads bootstrap of module 3
2. loads bootstrap of module 1
3. loads bootstrap of module 4
4. loads bootstrap of module 2

シーケンスを変更するにはどうすればよいですか?

関連する読書ですが、私が探しているものではありません。

http://phpdev.ro/zf-tutorial-series-part-1-module-based-app.html

http://forums.zend.com/viewtopic.php?f=69&t=1589

http://www.stephenrhoades.com/?p=386

4

2 に答える 2

1

通常、ブートストラップの順序を明示的に指定することはありません。

ただし、あるアプリケーションリソースまたは_initXXX()メソッドで最初に別のリソースを初期化する必要がある場合は、次のように呼び出します。

$bootstrap->bootstrap('someResource');
$someResource = $bootstrap->getResource('someResource');

指定されたリソースsomeResourceを使用する前に、すべてブートストラップされていることを確認します。

を拡張するアプリケーションブートストラップを使用している場合Zend_Application_Bootstrap_Bootstrap、呼び出しは次のようになります。

$this->bootstrap('someResource');
$someResource = $this->getResource('someResource');

を拡張するモジュールブートストラップを使用している場合はZend_Application_Module_Bootstrap、次のようにわずかに変更されます。

$application = $this->getApplication();
$application->bootstrap('someResource');
$someResource = $application->getResource('someResource');
于 2012-06-21T07:12:12.283 に答える
0

これを行う唯一の方法は、モジュールの前にアルファベット順の文字を付けることです。または、Zend_Application_Module_Bootstrap/Zend_Application_Resource_Modules をオーバーライドし、ブートストラップする順序を設定ファイルに指定します。

于 2012-06-21T14:24:15.667 に答える