Цель состоит в том, чтобы разрешить передачу любых параметров в CLI Symfony, а не ограничиваться определенным набором разрешенных параметров.
Например:
php console.php --foo=bar
В этом примере foo
это опция, которая явно не разрешена приложением Symfony.
Мое консольное приложение проксирует к другому приложению с несколькими опциями CLI. Я не хочу вручную отражать каждую доступную опцию, чтобы сделать ее доступной для приложения Symfony.
Почему бы просто не создать собственную консольную команду (см. Symfony doc как это сделать) и использовать его параметры ввода или аргументы, чтобы передать его?
РЕДАКТИРОВАТЬ
Чтобы уточнить, что я имею в виду: не используйте пользовательские параметры, а пользовательские входные аргументы, такие как:
$this
// ...
->addArgument(
'options',
InputArgument::IS_ARRAY | InputArgument::REQUIRED,
'Please provide options separated by space'
);
Позвольте пользователю использовать такую команду, как mycompany: команда opt1 = val1 opt2 = valx (вместо mycompany: команда —opt1 = val1 —opt2 = valx, для которой вам действительно нужно определить opt1 и opt2)
Прочитайте массив, разделите значения в ‘=’ и передайте их третьему лицу так, как это требуется. Благодаря тому, что opt1 и opt2 являются динамическими, можно вводить все, что он предпочитает.
Я не проверял этот подход, но я не понимаю, почему это не должно работать.
Других решений пока нет …