web-dev-qa-db-ja.com

イベントディスパッチャーのイベントを検出する方法

コマースのイベントのEventSubscriberInterfaceの実装を記述したいのですが、便利な example がありますが、

  1. (サイト全体で)利用可能なイベントを確認する方法および/または
  2. リクエストでヒットするイベントを知るにはどうすればよいですか?

この質問はコマースモジュールに固有のものではなく、私の現在の問題のコンテキストにすぎません。

2
Duncanmoo

Drupalコンソールを使用するだけです。

デバッグできるすべてのイベントをリストします。

drupal debug:event

drupal dev

「commerce_order.commerce_order.update」など、特定のイベントの情報を表示します。

drupal dev commerce_order.commerce_order.update

2
Martin Klíma

私はこれにしばらく困惑していたので、Develモジュールで答えを見つけてうれしかった

Develモジュールをインストールして、ツールバーのメニュー項目を確認します。

/ devel/eventsにリンクする「イベント情報」

したがって、コマースイベントについては、次のように表示されます。

呼び出し可能な優先度
 commerce_order.place.post_transition 
 Drupal\commerce_order\EventSubscriber\OrderReceiptSubscriber :: sendOrderReceipt 0 
 
 commerce_order.place.pre_transition 
 Drupal\commerce_cart\EventSubscriber\OrderEventSubscriber :: finalizeCart 0 
 Drupal\commerce_order\EventSubscriber\TimestampEventSubscriber :: onPlaceTransition 1 
 Drupal\commerce_order\EventSubscriber\OrderNumberSubscriber :: setOrderNumber2 ]
1
Duncanmoo