如何配置 symfony/console
来接受动态选项列表?
也就是说 - 选项的名称在开发步骤中是未知的,所以我需要一个应用程序来接受所有内容并使用标准 $input->getOption
公开它。
有没有可能轻松完成(无需在数百万个地方破解码件)?
我的尝试包括扩展 ArgvInput
和 InputDefinition
类,但由于各种原因(它们是客观的和 symfony/console
组件实现)而失败了-具体的)。简而言之:前者需要多次调用parsing;后者 - 在多个地方实例化,所以我找不到合适的方法来注入(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/