回答:
傍受はイベントオブザーバーに代わるものではないと思います。
Magento2コードでディスパッチされるイベントがまだあります。
インターセプターは、メソッドの入力または出力を処理するための単なる方法です。
または、メソッドの動作(around
インターセプターを使用)ですが、私が理解しているところから、これは危険なアプローチです。
クラスの書き換えをできるだけ回避する方法だと思います。
Magento 1.xでは、メソッドの結果を変更する必要がある場合、それを含むクラスとメソッド自体をオーバーライドする必要がありました。
これでbefore
、after
またはaround
インターセプターを使用してデータを操作できます。
オブザーバーを使用すると、メソッド全体ではなく、メソッドの特定の固定点でデータを操作できます。
私の意見では、可能な場合はオブザーバーを使用することは、Magento 2でもカスタマイズのための最良のアプローチです。
傍受はイベントの進化です。その目標は、開発者が拡張ポイントを考慮せずに自分のコードを記述できるようにすることです。
イベントでは、モジュールをカスタマイズできるように、Mage :: dispatchEvent()を行う場所について考える必要があります。
傍受により、これについて考える必要がなくなります。あなたはあなたのビジネスロジックを書くだけです。すべてのメソッド呼び出しはイベントです。したがって、適切なオブジェクト指向の方法でコードを記述した場合、設計により完全にカスタマイズ可能になります。
しかし、イベントはビジネス言語を話すより高いレベルのサービス提供インターフェースを提供します。したがって、イベントはMagento 2に留まります。
現在、特定のイベントをリッスンするオプションはまだあります。インターセプターは書き換えの代わりにすぎないことをお勧めします。あなたのニーズに合ったイベントがある場合でも、私はイベントを使用します。
現在のリリースを見ると、一部のモジュールevents.xml
には定義を含むファイルがあります。
<event name="cms_wysiwyg_images_static_urls_allowed">
<observer name="catalog_wysiwyg" instance="Magento\Catalog\Model\Observer" />
</event>