我有類似的需求,我已經通過以下方式解決他們:
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)創建自己的擴展,其實可以處理新在app\config\config.yml
配置條目
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),你可以在你的新0使用屬性 - 設置derp
(作爲父包)的所有參數加上您在Configuration.php
中定義的任何新參數。
不,這不完全是我的意思。我想擴展一些bundle的配置(又名'DependencyInjection/Configuration.php'),而不僅僅是配置文件。 –