如何配置symfony/console
接受动态选项列表?
就是说-在开发步骤中不知道选项的名称,因此我需要一个应用程序来接受所有内容并使用标准$input->getOption
公开它。
是否有可能轻松完成(无需在数百万个地方黑客入侵该组件)?
我的尝试包括扩展ArgvInput
和InputDefinition
类,但由于各种原因而失败(它们是目标和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/