14

symfony コマンドの単一の名前付き引数/オプションを作成したいと考えています。そして、symfony にこれら 3 つのオプションを区別させたい:

  • my:command、これは次のようなことを意味しますmy:command --arg=null
  • my:command --arg、つまりmy:command --arg=defalutValue
  • my:command --arg=someValue、これは完全に明示的です。

つまり、そのコマンドの下でコードに2つの動作モードが必要です。デフォルトのモードと追加の引数を使用したデフォルト以外のモードで、その引数にはデフォルト値が必要です。

2つの引数を作成できることは理解していますが、1つの引数からすべてをルールにするソリューションを探しています。

組み込みクラスでそれを達成することは可能ですか、それともカスタム クラスを作成する必要がありますか? Symfony2 のアーキテクチャに詳しくないので、カスタム クラスでしか解決策を利用できない場合は、どこから始めればよいか教えてください (つまり、「... のサブクラスを作成する」または「... という名前のバンドルをインストールする」)。

4

3 に答える 3

20

可能です:

->addOption('arg', 'a', InputOption::VALUE_NONE)
  • 私の:コマンド=>$input->getOption('arg') //false
  • my:command --arg =>$input->getOption('arg') //true
  • my:command --arg=5 =>$input->getOption('arg') //5
于 2013-05-08T10:14:59.860 に答える
1

corvax による回答は正しくなく、機能しません。今日の時点では、これを達成することはできません。

コンソールのドキュメントにも記載されています: Using Command Options

GitHub で次の問題も参照してください。

于 2016-03-03T09:58:28.267 に答える
-3

Symfony2 には、個別に使用できるコンソール コンポーネントがあります。ドキュメントはこちらでご覧いただけます。より多くの例については、SensioGeneratorBundle の実装を確認できます。

于 2012-04-11T15:42:51.530 に答える