允许任何选项传递给Symfony CLI

时间:2016-11-07 17:23:32

标签: php symfony symfony-console

目标是允许将任何选项传递给symfony CLI,而不是限制为一组已定义的允许选项。

例如:

php console.php --foo=bar

在此示例中,foo是symfony应用程序未明确允许的选项。

我的控制台应用程序通过许多CLI选项代理到不同的应用程序。我不想手动镜像每个可用选项,以使它们可用于symfony应用程序。

1 个答案:

答案 0 :(得分:0)

为什么不简单地创建自己的控制台命令(参见Symfony doc如何操作)并使用其输入选项或参数来交付它?

修改

进一步明确我的意思:不要使用自定义选项,而是使用自定义输入参数,如:

$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是动态的,人们可以输入他喜欢的任何东西。

我没有测试这种方法,但我不知道为什么这不起作用。