我想知道是否可以为每个捆绑包定义一个 parameters.yml 文件,或者只为需要它的捆绑包定义并加载它们。
我已经搜索了很多,但我找不到这样的解决方案。
你应该澄清一下;您希望每个捆绑包都自动包含一个parameters.yml
文件吗?恐怕您需要修改 Symfony 的 DI 核心。不过有一个简单的选择。
如果您使用一些创建自己的捆绑包,DependencyInjection
那么您可以添加$loader->load('parameters.yml');
捆绑包的扩展类。
扩展类应该位于YourBundle/DependencyInjection/YourBundleExtension.php
.
该类应如下所示
class YourBundleExtension extends Extension
{
/**
* {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
$loader->load('parameters.yml'); // Adding the parameters file
}
}
所以在这种情况下,parameters.yml
文件将位于YourBundle/Resources/config/parameters.yml
.
如果您只想将包中的参数文件包含到您的配置中,只需按照从包中导入额外配置文件的正常格式(默认应用程序显示如何使用路由执行此操作)。更新您的配置以包含您的参数文件,如下所示:
imports:
- { resource: parameters.yml }
- { resource: @YourBundle/Resources/config/parameters.yml }
- { resource: security.yml }
- ...
您的参数文件应遵循与默认格式相同的格式:
parameters:
my.parameter: "my value"