1

Symfony 2.1 で実装しようとしているカスタム構成パラメーターのヘルプを探しています

私は新参者ですが、これまで Symfony を使って仕事をしてきただけでも素晴らしいことです。私は今、バンドルをよりユーザーフレンドリーで設定しやすいものにしようとしていますconfig.yml.

私が定義しようとしているパラメータは、たとえば私が持っている設定のデフォルトの量のシーケンスです

mymain:
    default_values: [1, 2, 3, 4]

そのような場合、ツリービルダーを適切に使用してノードを追加し、構成を適切に処理するにはどうすればよいでしょうか?

私が試したのは

$rootNode
    ->children()
        ->enumNode('default_values')
            ->values(array(1, 2))
        ->end()
    ->end();

それで、次の例外が発生します。

パス「mymain.defaults」のタイプが無効です。スカラーが必要ですが、配列を取得しました。

指定したデフォルトのフォールバック配列シーケンスを使用して、構成をオプションにしたいと思います。

私もarrayNodeを試しましたが、それは一連の数字を構成しようとしているキーと値のペアを使用したマッピングまたは配列用だと思います。

4

1 に答える 1

2

私の知る限り、enumNode を使用すると、指定された値のセット内で単一の値のみを使用できます。あなたの例では、有効な値はdefault_values1または2ですが、配列ではありません。

次の構成では、省略された場合のデフォルトで数値の配列を設定できますdefault_values

$rootNode
    ->children()
        ->arrayNode('default_values')
            ->defaultValue(array(2,3))
            ->prototype('scalar')
                ->validate()
                    ->ifTrue(function($v){ return !is_numeric($v); })
                    ->thenInvalid('%s is not a number')
                ->end()
            ->end()
        ->end()
    ->end();

私はあなたが必要とするものであることを願っています.

于 2012-08-14T03:25:31.137 に答える