为什么我不能在 bundle 的配置文件中使用配置?

Why I can't use configuration in config files of bundle?

我生成了新包:RusabTestBundle。其中包括文件:

- DependencyInjection
--  RusabTestBundleExtension.php
--  Configuration.php

在RusabTestBundleExtension.php我有:

$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');

在 Configuration.php 我有:

$rootNode = $treeBuilder->root('rusab_test_service');

下一个:

- Resources
-- services.yml

在services.yml我粘贴:

rusab_test_service:

我有错误:

There is no extension able to load the configuration for "rusab_test_service" (in /xxx/src/Rusab/TestBundle/DependencyInjection/../Resources/config/services.yml). Looked for namespace "rusab_test_service", found none

但是我贴

rusab_test_service:

app/config/config.yml

那么这就可以了。

为什么?我知道,我可以在 app/config/config.yml 中导入 services.yml,但是 RusabTestBundleExtension.php 中的加载程序是什么?

捆绑配置的工作方式是构建一个包含所有不同选项的配置树。

您正在尝试通过加载配置文件来构建树,这可能不错,但这不是 Symfony 的设计方式。

所以在 Configuration.php 中构建你的树,然后让应用程序能够通过 app/config/config.yml

覆盖特定值