У меня есть настройка Symfony 4
в services.yml
У меня есть следующая настроенная служба
MyCompany\Interfaces\QueueProducerInterface:
class: MyCompany\Service\KafkaProducer
arguments:
$queueConfig: '@queue_config'
Я хочу динамически изменить настройку в моем файле .env
, чтобы я могвведите его позже, в зависимости от env (dev, production) .... поэтому я попробовал что-то вроде этого:
в .env
QUEUE_DRIVER="MyCompany\Service\KafkaProducer"
, а теперь в services.yaml
MyCompany\Interfaces\QueueProducerInterface:
# class: MyCompany\Service\KafkaProducer
class: '.%env(QUEUE_DRIVER)%'
arguments:
$queueConfig: '@queue_config'
но когда я запускаю, например, composer update
, я получаю ошибку контейнера
Script cache:clear returned with error code 1
!!
!! In Compiler.php line 112:
!!
!! Incompatible use of dynamic environment variables "QUEUE_DRIVER" found in p
!! arameters.
!!
!!
!! In AbstractRecursivePass.php line 123:
!!
!! Invalid service "MyCompany\Interfaces\QueueProducerInterface": class ".%env(
!! QUEUE_DRIVER)%" does not exist.
!!
!!
как мне решить эту проблему?или лучше сказать, как я могу установить значение этого класса динамически в зависимости от ENV.