Frage Symfony2-Konsolenargumente


Ich möchte eine Single erstellen genannt Argument / Option für Symfony-Befehl. Und möchte, dass symfony diese 3 Optionen unterscheidet:

  • my:command, was so etwas bedeutet my:command --arg=null
  • my:command --arg, was bedeutet my:command --arg=defalutValue
  • my:command --arg=someValuedas ist völlig explizit.

I.e. Ich möchte zwei Arbeitsmodi für Code unter diesem Befehl: Standard-1 und nicht-Standard mit zusätzlichen Argument, und dass Arg sollte Standardwert haben.

Ich verstehe, dass ich 2 Argumente erstellen konnte, aber ich suche nach einer Arg-zu-der-Regel-Lösung.

Ist es möglich, dies mit integrierten Klassen zu erreichen, oder sollte ich benutzerdefinierte Klassen erstellen? Wenn die Lösung nur für benutzerdefinierte Klassen verfügbar ist, teilen Sie mir bitte mit, wo Sie anfangen sollen (z. B. "Unterklasse erstellen ..." oder "Paket mit Namen installieren ..."), da ich mit der Symfony2-Architektur nicht vertraut bin.


11
2018-04-09 13:24


Ursprung


Antworten:


Es ist möglich:

->addOption('arg', 'a', InputOption::VALUE_NONE)
  • mein: Befehl => $input->getOption('arg') //false
  • mein: Befehl --arg => $input->getOption('arg') //true
  • mein: Befehl --arg = 5 => $input->getOption('arg') //5

16
2018-05-08 10:14



Antwort von corvax ist falsch und funktioniert nicht. Ab heute können Sie das nicht erreichen.

Es ist sogar in der Konsolendokumentation angegeben: Befehlsoptionen verwenden.

Siehe auch diese Probleme auf GitHub:


1
2018-03-03 09:58



Symfony2 hat eine Konsolenkomponente, die separat verwendet werden kann. Sie können die Dokumentation sehen Hier. Für mehr Beispiel können Sie überprüfen Implementierungen von SensioGeneratorBundle.


-3
2018-04-11 15:42