如何限制Symfony Console仅识别单短杠(-u)命令选项
解决方法
问题出在你调用addOption的方式上:当前你把长选项名和短选项名都设成了'u',导致Symfony同时注册了-u(短选项)和--u(长选项)两个可互换的选项。
要实现只允许单短杠的-u,只需要把addOption的第一个参数(长选项名)设为null,这样就不会注册长选项,自然就无法通过--u调用了:
$application ->register('user:upload') ->setDescription('Uploads users from a CSV file to the database') // 把第一个参数改为null,只注册短选项-u ->addOption(null, 'u', InputOption::VALUE_REQUIRED, 'MySQL username') ->setCode(function (InputInterface $input, OutputInterface $output) { $username = $input->getOption('u'); // 后续逻辑... });
修改后,当用户尝试使用--u时,Symfony Console会直接抛出Unknown option "--u"的错误,符合你只接受-u的需求。
内容的提问来源于stack exchange,提问作者Saltern
相关产品推荐
相关产品推荐

