是否可以将YAML文件注入Symfony中的服务?

时间:2016-07-12 23:15:03

标签: php dependency-injection symfony

我想将一个YAML配置注入Symfony中的服务。目前,我注入了我的包的路径和文件的相对路径,并使用Yaml::parse手动解析它,但有更简单的方法吗?
因此,目标是服务的构造函数将接收已解析的YAML配置的数组。

详细介绍一下:

目前,我的捆绑包中的Resources目录中有一个YAML文件,并在服务中解析它,我使用这样的东西:

$yamlFile = sprintf(
        '%s/%s',
        $container->get('kernel')->getBundle('MyBundle')->getPath(),
        $pathToFile
);

所以我必须注入容器(我可以以某种方式只注入包的路径吗?)和文件的路径。我不介意重构我的系统,例如将yaml文件放在bundle的config目录中,如果这会有所帮助,但我想将它与其他配置分开。

1 个答案:

答案 0 :(得分:3)

您可以在包扩展中加载所需的配置,如下所述:http://symfony.com/doc/current/cookbook/bundles/extension.html并将其保存到新参数,或者注入您喜欢的任何服务。