使用YAML在服务定义中混合位置和键参数

问题描述 投票:1回答:1

使用XML配置服务时,我们可以执行以下操作:

 <service id="foobar" class="App\Foobar" public="false" abstract="true">
       <argument type="service" id="doctrine" />
       <argument>null</argument>
       <argument type="service" id="logger" on-invalid="ignore" />
       <argument key="$bombastic" type="service"
            id="bombastic.service" on-invalid="ignore" />
</service>

前三个参数是位置(构造函数中的前三个参数),最后一个是参数名称的keyed。由于实际服务有5个参数,因此第四个参数未定义,因此可以由扩展foobar服务的服务定义。

哪个很好。

在YAML中,documentation显示如何使用像这样的键参数:

App\Updates\SiteUpdateManager:
        arguments:
            $someService: '@manager'

和类似这样的位置参数:

App\Updates\SiteUpdateManager:
        arguments:
            - '@manager'

但是我想做与上述XML配置相同的操作,但是使用YAML(因为此应用程序的所有服务配置已经在YAML中,并且我不想为该服务添加单个XML配置文件)。

如何将两种样式与YAML配置结合在一起?

使用XML配置服务时,我们可以执行以下操作:[

symfony dependency-injection symfony4
1个回答
1
投票

尝试结合索引参数和键参数,例如:

© www.soinside.com 2019 - 2024. All rights reserved.