将我自己的库的配置文件放在哪里,并将路径注入到 Symfony 服务中

Where to put config file for my own library and have the path injected into Symfony service

好的,所以我有一个我编写的库,我想在 Symfony 中使用它。它的配置存储在 yml 文件中。

目前我在 src/AppBundle/Resources/config 中有 yml 文件。我需要将此配置文件的路径注入到服务中。目前,我只是在 services.yml:-

中硬编码了配置文件的相对路径

service_name: class: My\Library\Service arguments: ["../src/AppBundle/Resources/config/my_library_config.yml"]

我觉得这不是解决问题的正确方法?

您可以使用 Extension class 为您生成路径,并在容器编译时替换参数。

然而,Symfony 已经有了 configuration processing method。扩展选项在没有配置的情况下有点无用,所以如果你不是为了重新使用而构建它,请使用 %kernel.root_dir% 来添加正确的路径。

如果您将要重用它,那么将配置设为静态是没有意义的。在这种情况下,我建议您创建一个配置选项,以便人们可以自己配置您的 bundle/options。

您是否有真正的理由想要制作自己的配置?您可以简单地定义一个参数并将整个配置存储在一个参数中,这样您就无需创建和解析自己的配置文件,并允许您从参数系统中受益。