MvcEvent::EVENT_BOOTSTRAP
リスナーが実行される前に、いくつかのコードを実行する必要があります。明らかModule::onBootstrap
にオプションではありません。次のコードで終了します。
class Module
{
function init(\Zend\ModuleManager\ModuleManager $moduleManager)
{
$moduleManager->getEventManager()->attach(
MvcEvent::EVENT_BOOTSTRAP, array(ClassX, 'StaticMethodOfClassX'), 20000);
}
}
参照をハードコーディングしたくありませんがarray(ClassX, 'StaticMethodOfClassX')
、サービスマネージャーから取得します。私の問題は、モジュールの init メソッド内でサービス マネージャーの参照を取得する方法がわからないことです。何か助けはありますか?または、これは現在ZF2では不可能ですか? このスキーマまたは意見のどのような変形も高く評価されます;)
編集:
「明らかにModule::onBootstrapはオプションではありません」を明確にします。cosはそれほど簡単ではないかもしれません;)
イベントがトリガーされるとモジュールのModule::onBootstrap
メソッドが実行されますが、そのイベントへの各モジュールのメソッドの添付は、モジュールがロードされた順序に依存します。そのため、特定のメソッドが実行される順序は、存在する他のモジュールと、その特定のモジュールがロードされる順序に他のモジュールがどのように影響するかによって異なります。さらに、優先度が 1 より大きいイベントにアタッチされたリスナーは、モジュールメソッドの前に実行されます (例: リスナー)。だから、私が望むものを達成するためにMvcEvent::EVENT_BOOTSTRAP
Module::onBootstrap
Module::onBootstrap
MvcEvent::EVENT_BOOTSTRAP
Module::onBootstrap
ViewManager::onBootstrap
MvcEvent::EVENT_BOOTSTRAP
リスナーが実行される前に、いくつかのコードを実行する必要があります
モジュールの obBootstrap メソッドはオプションではありません。