如何配置symfony/console接受动态选项列表?

就是说-在开发步骤中不知道选项的名称,因此我需要一个应用程序来接受所有内容并使用标准$input->getOption公开它。

是否有可能轻松完成(无需在数百万个地方黑客入侵该组件)?

我的尝试包括扩展ArgvInputInputDefinition类,但由于各种原因而失败(它们是目标和symfony/console组件特定于实现的)。简要地说:前者需要多次调用解析。后者-已在多个地方实例化,所以我只是找不到合适的方法来注入(inject)它。

最佳答案

您可以创建允许所有选项的自己的ArgvInput。

例如,您可以看到ArgvInput的稍微修改版本here

我只有修改过的行:178

并注释掉行:188-199

然后将您的版本ArgvInput实例(而不是默认实例)传递给

$input = new AcceptAllArgvInput();
$kernel = new AppKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);

关于php - symfony/console组件的可变数量的选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21866901/

10-09 22:07