我在Symfony2中有一个命令,我希望能够从config_dev.yml
我正在尝试在命令execute
方法中检索配置,如下所示:
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->getContainer()->getParameter('parse');
}
但是当我执行命令时:
$ php app/console acme:test
它给我以下错误消息:
没有可以加载“acme”
的配置的扩展程序
我要检索的config_dev.yml
中的数据:
acme:
foo: "bar"
命令扩展containerAwareCommand
:
class AcmeCommand extends containerAwareCommand
有任何建议如何实现这一目标?
更新
配置树示例:
// src / Acme / ApiBundle / DependencyInjection / Configuration.php
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('acme');
$rootNode
->children()
->scalarNode('foo')->end()
->end()
;
return $treeBuilder;
}
扩展示例:
// src / Acme / ApiBundle / DependencyInjection / AcmeApiExtension.php
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$container->setParameter('acme', $config);
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml');
config_dev.yml示例:
...
acme:
foo: "bar"
答案 0 :(得分:0)
您是否定义了here之类的配置树?
答案 1 :(得分:0)
如果您只对从配置文件中存储和检索任意数据感兴趣,则应将其存储在parameters.yml
中,而不是config_dev.yml
。
允许parameters.yml
中的配置条目是自由格式的,只要它们低于parameters:
密钥,而config*.yml
文件中的条目必须符合以下定义的结构:你的捆绑配置。
但是,您应该首先在parameters.yml.dist
中定义要存储的数据的密钥。