php - symfony/console 组件的可变数量的选项

标签 php symfony

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

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

有没有可能轻松完成(无需在数百万个地方破解码件)?

我的尝试包括扩展 ArgvInputInputDefinition 类,但由于各种原因(它们是客观的和 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/

相关文章:

symfony - 在symfony2上使用 Elasticsearch (FOSElasticaBundle)索引计算的字段

php - Symfony2 & Doctrine2 : removeElement doesn't work

php - 对许多实体使用一类 Voter

php - 即时创建数据库备份

php - 如何使用 codeigniter 中的左连接 Activity 记录显示来自两个不同表的字段?

php - Yii2/PHP/IIS7 - URL 重写和文件权限(漂亮的 URL 问题)

php - 交响乐 2 : Global Database Query

Symfony2 & Twig - 主题文件上传小部件

php - SUT - 测试内部行为 TDD

php - PHP 缩小有帮助吗?