Я пытаюсь выполнить некоторые процессы конфигурации в Extension
, а для некоторых вещей мне нужно получить доступ к моей конфигурации.
Вот мой конфигурационный файл
my_app:
db_driver: "%env(DB_DRIVER)%"
My Config Class
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()
из Kernel
Можно ли создать собственное пространство имен внутри приложения (не в комплекте)? если да как это сделать? а если нет ... почему бы и нет?