В Symfony 4 я хотел бы объединить различные файлы конфигурации для служб.В следующем сценарии я пытаюсь импортировать службы из конфигурации php с именем services.php, а затем выполнить конфигурации других служб в файле yaml, который импортирует другие службы.
services.yaml
imports:
- { resource: services.php }
services:
_defaults:
autowire: true
autoconfigure: true
public: false
App\:
resource: '../src/*'
exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'
services.php
<?php
use Symfony\Component\DependencyInjection\Definition;
$definition = new Definition();
$definition
->setAutowired(true)
->setAutoconfigured(true)
->setPublic(false)
;
$this->registerClasses($definition, 'App\\', '../src/*', '../src/{Entity,Migrations,Tests}');
$container->getDefinition(\App\SomeClass::class)
->setArgument('$param', 'someValue');
Файл класса
class SomeClass
{
public function __construct(string $param)
{
...
}
Я получаю следующую ошибку:
Невозможно автоматически подключить службу "App \ SomeClass": аргумент "$ param" метода "__construct ()" является подсказкой типа "string", вы должны явно указать его значение.
Кроме того, мне интересно, нужно ли мне перезаписыватьисходное определение _defaults (или другие, уже внесенные импортируемыми файлами) из yaml или I могут наследоваться.Не уверен, как все эти файлы объединяются.