gpt4 book ai didi

交响乐2 : validate console command arguments

转载 作者:行者123 更新时间:2023-12-02 10:49:16 25 4
gpt4 key购买 nike

我正在创建一个命令来从文件生成帐户。在命令中我传递了一些参数。

   $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.");

我只是在想是否有任何方法可以检查传递的参数类型。现在我正在这样检查,

   if (is_numeric($input->getArgument('account-id'))) {
// ....
}

我是否可以创建一个验证器来检查类型,而我只需要调用验证函数即可。

   if ($input->validate() === false) {
// show error message and return.
}

最佳答案

不幸的是,目前 Symfony 中还没有办法实现命令参数验证。实现这些检查的最佳方法是重写命令中的 Symfony\Component\Console\Command::initialize 方法,然后在其中应用验证规则,如果传递的参数无效,则抛出异常。

更新: Matthias Noback 已实现 symfony-console-form ( https://github.com/matthiasnoback/symfony-console-form ),并且看起来像是实现 Matthias\SymfonyConsoleForm\Console\Command\FormBasedCommand 接口(interface)将通过表单组件为您提供基本的验证能力(不过必须使用验证来测试它)。

关于交响乐2 : validate console command arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com