原则迁移自定义标志

时间:2019-07-16 08:33:10

标签: php doctrine migration

我在项目中使用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'是一个函数/命令,应该在某个地方定义,以便可以将其添加到这样的范围中,但是我不确定这是哪里发生的。

有人做了类似的事情吗?

1 个答案:

答案 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'