我想在Extension
中执行一些配置过程,并且某些事情我必须访问我的配置。
这是我的配置文件
my_app:
db_driver: "%env(DB_DRIVER)%"
我的配置类
class Configuration implements ConfigurationInterface
{
/**
* @return TreeBuilder
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('my_app');
//the '%env(DB_DRIVER)%' is temporary... maybe
$supportedDrivers = array('orm', 'mongodb', '%env(DB_DRIVER)%');
$rootNode
->children()
->scalarNode('db_driver')
->validate()
->ifNotInArray($supportedDrivers)
->thenInvalid('The driver %s is not supported. Please choose one of '.json_encode($supportedDrivers))
->end()
->cannotBeOverwritten()
->isRequired()
->cannotBeEmpty()
->end()
->end();
return $treeBuilder;
}
}
我的扩展程序类
class DoctrineExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$processor = new Processor();
$configuration = new Configuration();
$config = $processor->processConfiguration($configuration, $configs);
dump($config);exit;
...
}
}
我以为我可以访问我的my_app
配置参数,但收到此错误消息
没有扩展程序能够加载“ my_app”的配置,然后加载可用的
config namespaces
列表。
我的扩展程序已在configureContainer()
的{{1}}方法中注册
是否可以在应用程序(不是捆绑包)内创建自定义名称空间?如果是,该怎么办?如果不是...为什么不呢?