我有symfony 4 setup
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动态设置该类的值。
答案 0 :(得分:1)
我通过在文件夹services.yaml
内创建config/packages/dev/
以及`config / packages / prod /'有不同的设置。