Symfony2 ログイン イベント リスナーを追加しようとしています。目標は、ユーザーがログに記録されている場合はデータベースに格納されたロケールをリクエストごとに設定し、ユーザーがログに記録されていないデフォルトのロケールにフォールバックすることです。私は FOSUserBundle を使用しており、security.interactive_login イベントを機能させようとしています。次のようなインターネット上で多くのコードを見つけます: http://dev.dbl-a.com/symfony-2-0/how-to-add-a-symfony2-login-event-listener/
FOSUserBundle の独自の子バンドルと、services.yml でのこの実装があります。
my_user.security.interactive_login_listener:
class: My\UserBundle\EventListener\UserListener
arguments: [@security.context, @doctrine]
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: setLocaleForAuthenticatedUser }
my_user.security.kernel_request_listener:
class: My\UserBundle\EventListener\UserListener
arguments: [@security.context, @doctrine]
tags:
- { name: kernel.event_listener, event: kernel.request, method: setLocaleForUnauthenticatedUser }
問題は、ログに記録されている場合でも、security.interactive_login イベントがトリガーされないことです。それどころか、私の setLocaleForUnauthenticatedUser は常にトリガーされます。私が見つけたすべてのコード サンプルは流暢に動作するようですが、私のアプリの何が問題なのですか?