私は、同様のニーズを持っていた私は、次の方法でそれらを解決してきた:
1)
//FooBundle\DependencyInjection\Configuration.php
use DerpBundle\DependencyInjection\Configuration as BaseConfiguration;
class Configuration extends BaseConfiguration
{
public function getConfigTreeBuilder()
{
$treeBuilder = parent::getConfigTreeBuilder();
//protected attribute access workaround
$reflectedClass = new \ReflectionObject($treeBuilder);
$property = $reflectedClass->getProperty("root");
$property->setAccessible(true);
$rootNode = $property->getValue($treeBuilder);
$rootNode
->children()
...
return $treeBuilder;
}
}
2親のConfigurationクラスを拡張して)実際に新しいを扱うことができる独自の拡張機能を作成します。構成エントリ
class FooExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
//custom parameters
$container->setParameter('new_param_container_name', $config['new_param_name']);
...
}
}
3)app\config\config.yml
で新しい0で使用できますアトリビュート:derp
(親バンドルとして)に、Configuration.php
で定義した新しいパラメータを加えたすべてのパラメータを設定します。
いいえ、それはまさに私が意味するものではありません。私は設定ファイルだけでなく、バンドルの設定(別名 'DependencyInjection/Configuration.php')を拡張したいと思います。 –