当我使用另一个包中的类时,Symfony的setter注入不会调用我的setter

时间:2018-11-27 09:12:15

标签: symfony symfony4

我试图在类设置器中插入一个变量,但是它不起作用。 这是我的配置:

Company\CoreBundle\Services\InspectorManager\InspectorManager:
    public: true
    autowire: false

App\Helpers\GraphQl\Resolver\OrderResolver:
    autowire: false
    calls:
    - [setInspector, ['@core.inspector_manager']]

和班级

class OrderResolver
{
    protected $em;

    /**
     * @var InspectorManager $inspectorManager
     */
    protected $inspectorManager;

    public function __construct(EntityManager $em)
    {
        $this->em = $em;
    }

    /**
     * @var InspectorManager $inspectorManager
     * @required
     */
    public function setInspector(InspectorManager $inspectorManager)
    {
        $this->inspectorManager = $inspectorManager;
    }
}

setInspector永远不会被调用。 InspectorManager类来自另一个Symfony版本(2.8)的另一个包,并在其中以这种方式声明:

core.inspector_manager:
    class: Company\CoreBundle\Services\InspectorManager\InspectorManager
    arguments: ['@doctrine.orm.entity_manager']
    calls:
         - [setGeolocalisation, ['@core.geolocation_service']]

您知道为什么它不起作用吗?我在这个问题上花了太多时间,但没有任何解决方法。 如果我运行debug:autowiring,则会得到InspectorManager。

我已经将InspectorManager和OrderResolver的自动接线设置更改为true,但这并没有任何改变。

0 个答案:

没有答案