如何从服务中的 parameters.yml 读取参数?
How to read parameters from parameters.yml in a service?
我创建了一个服务,我需要从 parameters.yml 读取一些参数,到目前为止我只能通过容器读取参数,我已经将容器注入我的服务,我知道注入容器不是好的做法,我应该注入必需的 services/components,但是我无法弄清楚如何在不将容器注入服务的情况下从 parameters.yml 读取参数,并且然后在容器的帮助下读取参数。
你能指导我寻找替代解决方案吗?
编辑:
我有一长串参数,大约 12-15 个,我将 API 的速率限制选项存储在 parameters.yml 中,以便可以轻松配置它们
谢谢。
您可以简单地在服务的定义中传递它。作为此 xml 定义中的示例:
<service id="amce.example_service" class="Acme\DemoBundle\Service\Example">
<argument type="service" id="templating" />
<argument>%my_from_parameters%</argument>
</service>
希望对您有所帮助
您实际上可以将参数传递到您的服务中。像这样:
service_name:
class: <pathToClass>
arguments:
- %<parameter-name>%
由于你有一个长列表,一个参数一个一个地注入这些参数会很苛刻,但你可以注入参数数组。
parameters.yml
parameters:
array_name:
param1: value1
param2: value2
...
services.yml
services:
your_service:
class: Acme\DemoBundle\Class
arguments: [%array_name%]
您的服务:
public function __construct(array $parameters)
{
//access $parameters['param1'], $parameters['param2']
}
我创建了一个服务,我需要从 parameters.yml 读取一些参数,到目前为止我只能通过容器读取参数,我已经将容器注入我的服务,我知道注入容器不是好的做法,我应该注入必需的 services/components,但是我无法弄清楚如何在不将容器注入服务的情况下从 parameters.yml 读取参数,并且然后在容器的帮助下读取参数。 你能指导我寻找替代解决方案吗?
编辑:
我有一长串参数,大约 12-15 个,我将 API 的速率限制选项存储在 parameters.yml 中,以便可以轻松配置它们
谢谢。
您可以简单地在服务的定义中传递它。作为此 xml 定义中的示例:
<service id="amce.example_service" class="Acme\DemoBundle\Service\Example">
<argument type="service" id="templating" />
<argument>%my_from_parameters%</argument>
</service>
希望对您有所帮助
您实际上可以将参数传递到您的服务中。像这样:
service_name:
class: <pathToClass>
arguments:
- %<parameter-name>%
由于你有一个长列表,一个参数一个一个地注入这些参数会很苛刻,但你可以注入参数数组。
parameters.yml
parameters:
array_name:
param1: value1
param2: value2
...
services.yml
services:
your_service:
class: Acme\DemoBundle\Class
arguments: [%array_name%]
您的服务:
public function __construct(array $parameters)
{
//access $parameters['param1'], $parameters['param2']
}