【问题标题】:TYPO3 Symfony Command Controller argument starting with - (minus) causes errorTYPO3 Symfony 命令控制器参数以 -(减号)开头导致错误
【发布时间】:2021-09-24 05:18:16
【问题描述】:

我在 TYPO3 扩展中有一个 Symfony 命令控制器,它有参数。例如使用$this->addArgument('myArgument', InputArgument::OPTIONAL, 'My argument', 'default'); 设置参数并使用$input->getArgument('myArgument') 获取参数。该命令使用vendor/bin/typo3 myextension:mycommand myargument 执行。

这通常可以正常工作,但是一个参数用于使用strtotime 设置相对日期,例如-1 week。这会导致错误:The "-1" option does not exist. 用于此的命令是vendor/bin/typo3 myextension:mycommand "-1 week"

是否有不同的方法来输入参数或转义它?我已经试过"\-1 week"

【问题讨论】:

  • 如果你赶时间并且想要快速而肮脏地做,为什么不再添加一个接受减号或加号作为单词的参数并在你的命令中评估它? vendor/bin/typo3 myextension:mycommand 'minus' '1-week'。
  • 我想过这个,但strtotime 也接受其他事情。我可能会使用不同的字符,例如 _ 而不是 - 并在我的代码中替换它,如果没有其他修复它,但我宁愿有一个干净的修复。

标签: typo3 typo3-10.x symfony-cli


【解决方案1】:

在 Symfony 中,known bug 用于参数和选项。我现在通过使用_ 而不是- 并使用$myArgument = preg_replace('/^_/', '-', $input->getArgument('myArgument')); 在我的代码中替换它来“修复”它。这确实意味着我的论点不能以下划线开头,但在这种情况下这不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 2015-07-29
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多