我在项目中使用doctrine/migrations软件包,并想执行自定义迁移命令。我设法做到了,并将其添加到自定义脚本中:
$cli->addCommands(array(
...
new CustomCommand()
));
这很好用,并且我已经能够覆盖我感兴趣的大多数更改内容(迁移逻辑,模板),但是我不确定如何在添加多个参数的位置添加标志。
我的目标最终是做类似的事情:
php migration.php custom --table t1, t2, t3
我已经看到有一种添加“选项”的方法,例如:
protected function configure(): void
{
$this
->setName('...')
->setAliases(['custom'])
->setDescription('...')
->addOption(
'editor-cmd',
null,
InputOption::VALUE_OPTIONAL,
'Open file with this command upon creation.'
);
parent::configure();
}
我试图挖掘软件包的源代码以弄清楚它,但是我并不成功。我想在这种特定情况下,'editor-cmd'
是一个函数/命令,应该在某个地方定义,以便可以将其添加到这样的范围中,但是我不确定这是哪里发生的。
有人做了类似的事情吗?
答案 0 :(得分:0)
我知道了。看起来这根本不是一个回调,而是一个简单的shell参数。所以我添加了这个:
->addOption(
'test',
null,
InputOption::VALUE_OPTIONAL,
'...'
)
然后在下面的execute()
方法中调用:
$testCommand = $input->getOption('test');
现在,我可以使用以下命令调用脚本:
php test-mig.php custom --test=my_test_var
,值$testCommand
将是'my_test_var'
。