php - 教义迁移自定义标志
问题描述
我在我的项目中使用了一个学说/迁移包,并想做一个自定义迁移命令。我设法做到了,并将其添加到自定义脚本中:
$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'
,应该在某个地方定义一个函数/命令,以便可以像这样将它添加到范围中,但我不确定这发生在哪里。
有人做过类似的事情吗?
解决方案
我想到了。看起来这根本不是回调,而是一个简单的 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'
。
推荐阅读
- python-2.7 - 在 Google Cloud Dataflow 中访问模板化运行时参数 - Python
- amazon-s3 - Multer-s3 动态 s3 实例
- android - 使用 Kotlin 将图标添加到 TableLayout 中的选项卡
- tcp - 什么标识 TCP 段的连接?
- c++ - 使用 SSE 内在函数复制少量数据的问题
- python - MultiIndex 的滚动级别
- azure - Azure 容器服务:尝试拉取镜像但失败
- sql - 作为前端 BI 开发人员应该专注于哪些技能?
- html - 具有唯一子元素的父元素具有高度,即使唯一子元素的所有填充、边距、高度和宽度都设置为零
- asp.net - 如何在 ASP.NET Core 2.1 中为包进行 {version} 文件模式匹配?