我正在创建一个命令来从文件生成帐户.在命令中,我已经通过了一些论点.
$this
->setName('batch:create')
->setDescription('xyz')
->setHelp('xyz')
->addArgument('account-id', InputArgument::REQUIRED, "Set the account id.")
->addArgument('name', InputArgument::REQUIRED, "Set the account name.");
Run Code Online (Sandbox Code Playgroud)
我只是在考虑是否有任何方法可以检查传递的参数类型.现在我正在检查它,
if (is_numeric($input->getArgument('account-id'))) {
// ....
}
Run Code Online (Sandbox Code Playgroud)
无论如何我可以创建一个检查类型的验证器,我只需要调用验证功能.
if ($input->validate() === false) {
// show error message and return.
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,目前没有办法在Symfony中实现命令参数验证.实现这些检查的最佳方法是Symfony\Component\Console\Command::initialize在命令中重写方法,然后在那里应用验证规则,如果传递的参数无效则抛出异常.
更新: Matthias Noback已实现symfony-console-form(https://github.com/matthiasnoback/symfony-console-form),看起来实现Matthias\SymfonyConsoleForm\Console\Command\FormBasedCommand接口将通过表单组件为您提供基本的验证功能(必须通过验证测试它).
| 归档时间: |
|
| 查看次数: |
5365 次 |
| 最近记录: |