如果环境是“测试”,如何将“disable_delivery”设置为默认值true
?这甚至可能吗?
另一个问题是我如何根据另一个配置选项(如“用户名”)设置它?
$rootNode
->children()
->scalarNode('method')
->isRequired()
->cannotBeEmpty()
->validate()
->ifNotInArray($methods)
->thenInvalid('The method %s is not supported.')
->end()
->end()
->scalarNode('username')->isRequired()->cannotBeEmpty()->end()
->scalarNode('password')->isRequired()->cannotBeEmpty()->end()
->booleanNode('disable_delivery')->end()
->end()
;
答案 0 :(得分:1)
更好的方法是在config_test.yml configuraiton文件中设置此变量。
如果您仍想使用默认值:将容器实例传递给Configuration类并使用:
->booleanNode('disable_delivery')->defaultValue('test' === $this->container->get(‘http_kernel’)->getEnvironment() ? true : false)->end()
但这似乎不太好主意。
与第二个问题相同:在配置文件中使用param。对于您的捆绑包的最终用户来说,这将更加简单和清晰(您将在两到三个月内完成)。