Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 依赖性注射_Php_Symfony_Dependency Injection - Fatal编程技术网

Php 依赖性注射

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

当我们用symfony中的控制台创建一个bundle“MyBundle”时,它会生成一个类 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时,结果是数组中有一个空数组


该参数是从何处注入的,如何为该参数添加值

您应该将变量添加到
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文档中找到有关捆绑包配置的更多信息,请参见:

希望这有帮助

亚历山德鲁科索伊