1

true如果环境是“测试” ,我如何将“disable_delivery”设置为默认值?这甚至可能吗?

另一个问题是如何根据另一个配置选项(如“用户名”)设置它?

$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()
;
4

1 回答 1

1

更好的方法是在 config_test.yml 配置文件中设置这个变量。

如果您仍想使用默认值:将容器实例传递给您的配置类并使用:

->booleanNode('disable_delivery')->defaultValue('test' === $this->container->get(‘http_kernel’)->getEnvironment() ? true : false)->end()

但这似乎不是一个好主意。

与第二个问题相同:在配置文件中使用参数。对于您的捆绑包的最终用户(您将在两到三个月内)来说,它更加简单和清晰。

于 2012-09-24T12:48:42.017 回答