首页 > 解决方案 > symfony fos 用户参数监听器注入失败

问题描述

我正在使用 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) { ...

我不明白问题的根源。

标签: symfonyparameterslistener

解决方案


推荐阅读