При настройке службы с использованием 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>
Первые три аргумента являются позиционными (первые три аргумента в конструкторе), а последний - ключ к имени параметра. Поскольку фактическая служба имеет 5 аргументов, четвертый аргумент остается неопределенным, поэтому он может быть определен службой, которая расширяет службу foobar
.
Что очень хорошо.
В YAML Документация показывает, как использовать ключевые аргументы, например:
App\Updates\SiteUpdateManager:
arguments:
$someService: '@manager'
и позиционные аргументы, подобные этому:
App\Updates\SiteUpdateManager:
arguments:
- '@manager'
Но я бы хотел сделать то же самое, что и приведенная выше конфигурация XML, но с использованием YAML (поскольку вся конфигурация службы для этого приложения уже находится в YAML, и я не хотел бы добавлять один XML файл конфигурации только для этой службы).
Как я могу объединить два стиля с конфигурацией YAML?