使用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配置服务时,我们可以执行以下操作:
尝试结合索引参数和键参数,例如: