Разрешить любую опцию, переданную в Symfony CLI

Цель состоит в том, чтобы разрешить передачу любых опций в symfony CLI, а не ограничиваться определенным набором разрешенных опций.

Например:

php console.php --foo=bar

В этом примере foo — это опция, которая явно не разрешена приложением symfony.

Мое консольное приложение проксирует другое приложение с несколькими параметрами CLI. Я не хочу вручную зеркалировать каждую доступную опцию, чтобы сделать их доступными для приложения Symfony.


person jdp    schedule 07.11.2016    source источник


Ответы (1)


Почему бы просто не создать собственную консольную команду (см. документацию по Symfony) как это сделать) и используя его параметры ввода или аргументы, чтобы передать его?

ИЗМЕНИТЬ

Чтобы уточнить, что я имею в виду: используйте не настраиваемые параметры, а настраиваемые входные аргументы, например:

$this
// ...
->addArgument(
    'options',
    InputArgument::IS_ARRAY | InputArgument::REQUIRED,
    'Please provide options separated by space'
);

Позвольте пользователю использовать такую ​​команду, как mycompany:command opt1=val1 opt2=valx (вместо mycompany:command --opt1=val1 --opt2=valx, для которой вам действительно нужно определить opt1 и opt2)

Прочитайте массив, разделите значения на «=» и передайте их третьей стороне так, как это требуется. Благодаря тому, что opt1 и opt2 являются динамическими, можно вводить все, что он предпочитает.

Я не тестировал этот подход, но не понимаю, почему это не должно работать.

person LBA    schedule 07.11.2016
comment
У меня есть собственная консольная команда. Я не хочу, чтобы около 30 опций синхронизировались с проксируемым приложением. - person jdp; 08.11.2016