以 -(减号)开头的 TYPO3 Symfony 命令控制器参数导致错误

TYPO3 Symfony Command Controller argument starting with - (minus) causes error

我在带有参数的 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"

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