web-dev-qa-db-ja.com

新しいユーザーが登録したときにコードがトリガーされるようにするには、どのイベントをサブスクライブする必要がありますか?

次のイベントは、ユーザーアカウントが設定されたときに定義されていることに気付きました

const SET_USER = 'account.set';

新しいユーザーがサイトに登録したときにイベントサブスクライバーを作成してコードを実行したい。ただし、上記がこの目的のためにサブスクライブする必要があるイベントかどうかはわかりません。これに適した他のイベントはありますか?

2
Binny

_AccountEvents::SET_USER_ は、ユーザー登録のイベントではありません。ドキュメントごと:

このイベントにより、現在のユーザーが設定されるたびにモジュールがアクションを実行できます。イベントリスナーは、\ Drupal\Core\Session\AccountSetEventインスタンスを受け取ります。

このイベントは、Drupal=が現在のリクエストのユーザーオブジェクトを初期化するときに発生します。新しいユーザーが作成されたときではありません。

新しいユーザーの作成に応答するために、引き続き hook_user_insert() を使用できます。

2
Shawn Conn

ああ。イベントサブスクライバーを作成し、Drupal 8の新しいメソッドを使用して仕事を完了するために使用することを望んでいました。残念です;-)

Hook Event Dispatcher moduleを使用できます。使用方法については README.md ファイルを参照してください。

enter image description here

このモジュールは、いくつかのDrupalコアフックのイベントをディスパッチします。これにより、古いフックシステムの代わりにD8イベントサブスクライバーシステムを使用して、特定のイベントに反応することができます。

2
No Sssweat