我正在使用FOSUserBundle来管理用户。我需要重写与此事件相关的侦听器。后者的依赖关系定义如下:
user.password.change:
class: AppBundle\Listeners\PasswordResettingListener
arguments: ['@router', '@listener1', '@listener2']
tags:
- { name: kernel.event_subscriber }
我的问题在于依赖参数的注入。侦听器2依赖于另一个侦听器:
listener2:
class: AppBundle\HTTPRequest\Rezopouce
arguments: ["@request_stack", '@api.token.listener']
api.token.listener:
class: AppBundle\Listeners\ApiTokenListener
arguments: ['@doctrine.orm.entity_manager', '@security.token_storage', '%api%']
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
依赖项之一api.token.listener:'%api%'是在配置中定义的参数数组。正是这种依赖关系没有被正确注入。
我想指出的是,在事件kernel.request之后直接调用侦听器时,注入依赖项没有任何问题。
api.token.listener的构造函数,其中$api
是受保护的装饰品:
public function __construct(EntityManagerInterface $em, TokenStorageInterface $security_token_storage, $api = null) { ...
我不明白问题的根源。