Symfony:使用参数数组中的值作为服务参数
Symfony: Use a value within a parameter array as a service parameter
Symfony 3.4
我有一个如下所示的参数:
parameters.yml
:
paramters:
some_configuration:
param1: value1
param2: value2
我想将 some_configuration
参数中的值直接传递给服务,而不是 some_configuration
本身。像这样:
services.yml
:
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: '%some_configuration.param2%'
这有可能吗?
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: '@=parameter("some_configuration")["param2"]'
高于 Symfony 2.7.3
在我见过的所有 Symfony 配置文件中,'parameters:' 下的条目始终是完全限定的。
我不完全明白这是为什么,但它可能会帮助您像这样在 parameters.yml
中编写条目:
parameters.yml
:
parameters:
some_configuration.param1: value1
some_configuration.param2: value2
要在 service.yaml
中使用参数数组值,您可以将其用作普通参数(就像您写的那样!):
service.yaml
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: '%some_configuration.param2%'
在 symfony 2.7.3 中:
可以通过以下方式完成:
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: ["@=container.getParameter('some_configuration')['param1']"]
It works for symfony 2.7.3
有关表达式语言的更多信息,请参见 symfony doc
Symfony 3.4
我有一个如下所示的参数:
parameters.yml
:
paramters:
some_configuration:
param1: value1
param2: value2
我想将 some_configuration
参数中的值直接传递给服务,而不是 some_configuration
本身。像这样:
services.yml
:
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: '%some_configuration.param2%'
这有可能吗?
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: '@=parameter("some_configuration")["param2"]'
高于 Symfony 2.7.3
在我见过的所有 Symfony 配置文件中,'parameters:' 下的条目始终是完全限定的。
我不完全明白这是为什么,但它可能会帮助您像这样在 parameters.yml
中编写条目:
parameters.yml
:
parameters:
some_configuration.param1: value1
some_configuration.param2: value2
要在 service.yaml
中使用参数数组值,您可以将其用作普通参数(就像您写的那样!):
service.yaml
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: '%some_configuration.param2%'
在 symfony 2.7.3 中:
可以通过以下方式完成:
services:
AppBundle\Service\MyService:
arguments:
$serviceparam: ["@=container.getParameter('some_configuration')['param1']"]
It works for symfony 2.7.3
有关表达式语言的更多信息,请参见 symfony doc