Определить синтетический сервис в Symfony 4.1 не работает из пакета - PullRequest
0 голосов
/ 10 января 2019

Я создаю пакет Symfony, который определяет синтетический сервис:

my_alias:
    public: true
    synthetic: true

После установки пакета консольная команда приложения cache:clear всегда завершается ошибкой:

[Symfony \ Component \ внедрение зависимости \ Exception \ RuntimeException] Неверный сервис "my_alias": класс "" не существует.

Если я создаю тот же псевдоним внутри фактической структуры, эта ошибка не появляется.

Это ошибка, или я что-то не так делаю?

1 Ответ

0 голосов
/ 10 января 2019

Когда вы очищаете кеш, ядро ​​перекомпилируется, и контейнер не будет определять ваш сервис, который не внедрен в контейнер, поэтому вам нужно внедрить его под классом ядра:

if (!$container->hasDefinition('my_alias')) {
    $container->set('my_alias', new SyntheticService());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...