当我们创建一个包' MyBundle'在symfony中使用控制台,它会生成类 我们在这个类中的MyBundleExtension.php找到了一个方法' load'
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');
}
当我转储参数$ configs时,结果是数组内的空数组
从哪里注入此参数,如何为此参数添加值?
答案 0 :(得分:2)
正如Mert Simsek所说,您可以通过在app / config / config.yml中添加配置来配置您的捆绑包
您的捆绑包有一个用于收集此配置的密钥。默认情况下,使用带有此函数的包名称获取此键
\Symfony\Component\DependencyInjection\Extension\Extension::getAlias
但您可以覆盖此功能以在扩展程序中定义自定义键。
默认情况下(来自getAlias函数的文档),别名就像这样创建
* This convention is to remove the "Extension" postfix from the class
* name and then lowercase and underscore the result
所以在你的情况下只是"我的"。如果你想为这个包添加配置,你的yml配置将如下所示:
my:
some_config: value
set_of_configs:
config1: value1
config2: value2
在load方法$ configs中执行此操作后,您将获得一个数组。您可以使用预定义的类"配置"验证这个配置。您可以在Symfony Doc中找到有关捆绑配置的更多信息:
https://symfony.com/doc/current/components/config/definition.html
希望这有帮助,
Alexandru Cosoi
答案 1 :(得分:0)
您应该将变量添加到app/config/config.yml
文件中。