我已经创建了一个服务,我需要从parameters.yml读取一些参数,到目前为止我只能通过容器读取参数,我已将容器注入我的服务,我知道& #39;不是注入容器的好习惯而是我应该注入所需的服务/组件,但是我无法找到从parameters.yml读取参数的方法而不将容器注入服务然后在帮助下读取参数容器。 你能指导我一个替代解决方案吗?
修改
我有很长的参数列表,大约12-15,我在parameters.yml中存储API的速率限制选项,以便它们可以轻松配置
感谢。
答案 0 :(得分:5)
由于你有一个很长的列表,一个接一个地注入这些参数的参数会很苛刻,但你可以注入一系列参数。
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']
}
答案 1 :(得分:1)
您只需将其传递给服务定义即可。作为此xml定义中的示例:
<service id="amce.example_service" class="Acme\DemoBundle\Service\Example">
<argument type="service" id="templating" />
<argument>%my_from_parameters%</argument>
</service>
希望这个帮助
答案 2 :(得分:0)
您可以将参数实际传递到您的服务中。像这样:
service_name:
class: <pathToClass>
arguments:
- %<parameter-name>%