回答:
:Magentoのは3、デフォルトでは「エリア」がありfrontend
、adminhtml
そしてinstall
翻訳やデザインなどのいくつかのものを分離するために使用されます、。
Magentoが初期化されると、領域は一度ロードされて設定さMage_Core_Model_App_Area::load()
れます。詳細については、を参照してください。追加の領域が表示されますが、admin
これは使用されていないようです(もうどこか?)。モジュールtest
によっては、たとえばによって新しい領域が追加される場合がありEcomDev_PHPUnit
ます。
オブザーバーもエリアごとに定義されますが、さらに定義<global>
すると、すべてのエリアに適用されます。
現在の領域とで定義されたオブザーバーのみglobal
が実行されます。グローバルオブザーバーは常に最初に来ます。
オブザーバーを定義することは<default>
、<admin>
実際には機能しないはずです。
install
つまり、Magentoのインストールウィザードで使用されます。見てみましょうMage_Install_Controller_Action
(実際には、これはテーマにのみ使用されているように見えるため、特別にオブザーバーを作成することはできませんinstall
)
間にオブザーバーを呼び出すと<frontend></frontend>
、そのオブザーバーイベントはフロントエンドでのみ実行されます。その間<adminhtml></adminhtml>
に書き込みを行うと、バックエンドでのみ実行され、その間に書き込むと<global></global>
、オブザーバーイベントはフロントエンドとバックエンドの両方で機能します。
たとえば、「core_block_abstract_prepare_layout_after」という1つのイベントを受け取ります
ケース1:-
<adminhtml>
<events>
<core_block_abstract_prepare_layout_after>
</core_block_abstract_prepare_layout_after>
</events>
</adminhtml>
オブザーバーイベント"<core_block_abstract_prepare_layout_after>"
はバックエンドでのみ機能します
ケース2:-
<frontend>
<events>
<core_block_abstract_prepare_layout_after>
</core_block_abstract_prepare_layout_after>
</events>
</frontend>
オブザーバーイベント"<core_block_abstract_prepare_layout_after>"
はフロントエンドでのみ機能します
ケース3:-
<global>
<events>
<core_block_abstract_prepare_layout_after>
</core_block_abstract_prepare_layout_after>
</events>
</global>
オブザーバーイベント"<core_block_abstract_prepare_layout_after>"
はフロントエンドとバックエンドでのみ機能します