如何覆盖自动连接的symfony服务?

时间:2019-03-13 09:09:16

标签: php symfony autowired symfony4

我正在使用Symfony 4投影机,并且已经阅读Symfony documentation about autowiring

我的问题不是真正的自动装配,而是导入的文件。

This Symfony documentation说,您可以在许多文件中导入服务。

在我的项目中,我在service.yaml文件夹中有config,可将所有服务导入services文件夹中

imports:
    - { resource: './services/admin.yaml'}
    - { resource: './services/front.yaml'}
    - { resource: './services/core.yaml' }

services:
    _defaults:
    autowire: true
    autoconfigure: true

所以我需要重写服务自动装配,因为它在构造函数中有两个字符串,我需要手动连接这些参数

extranet.form.data_subscriber.remove_empty_reference_fields:
    class: Extranet\Admin\Form\DataSubscriber\RemoveEmptyFieldsSubscriber
    arguments:
        $collectionName: references
        $childName: name
Extranet\Admin\Form\DataSubscriber\RemoveEmptyFieldsSubscriber: '@extranet.form.data_subscriber.remove_empty_reference_fields'
Extranet\Admin\Form\DataSubscriber\RemoveEmptyFieldsSubscriberInterface: '@Extranet\Admin\Form\DataSubscriber\RemoveEmptyFieldsSubscriber'

但是现在,如果我将该服务直接放在文件末尾的services.yaml中,它将起作用。

我的问题是,如何使用services.yaml中未直接配置的服务覆盖自动装配

让我知道是否可以帮助我,谢谢

编辑

我已经尝试将imports部分放在services.yaml文件的末尾

0 个答案:

没有答案