-1

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%'

这有可能吗?

4

2 回答 2

1

Symfony 2.7.3 以上

在我见过的所有 Symfony 配置文件中,“参数:”下的条目一直是完全限定的。
我不完全理解为什么会这样,但它可以帮助您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 文档中找到

于 2021-09-18T05:43:28.893 回答
0
services:
    AppBundle\Service\MyService:
        arguments:
            $serviceparam: '@=parameter("some_configuration")["param2"]'
于 2021-09-17T17:43:15.460 回答