Php 依赖性注射
当我们用symfony中的控制台创建一个bundle“MyBundle”时,它会生成一个类 MyBundleExtension.php在这个类中,我们发现了一个“load”方法Php 依赖性注射,php,symfony,dependency-injection,Php,Symfony,Dependency Injection,当我们用symfony中的控制台创建一个bundle“MyBundle”时,它会生成一个类 MyBundleExtension.php在这个类中,我们发现了一个“load”方法 public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($confi
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时,结果是数组中有一个空数组
该参数是从何处注入的,如何为该参数添加值 您应该将变量添加到
app/config/config.yml
文件中 如Mert Simsek所述,您可以通过在app/config/config.yml中添加配置来配置捆绑包
您的捆绑包有一个用于收集此配置的密钥。默认情况下,使用此函数的捆绑包名称获取此密钥
\Symfony\Component\DependencyInjection\Extension\Extension::getAlias
但您可以重写此函数以在扩展中定义自定义密钥
默认情况下(从getAlias函数的doc中)别名是这样创建的
* 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
在加载方法$configs中执行此操作后,将获得一个数组。您可以使用预定义的类“Configuration”来验证此配置。您可以在Symfony文档中找到有关捆绑包配置的更多信息,请参见:
希望这有帮助
亚历山德鲁科索伊