在ThinkPHP8中,我们可以使用addOption
方法来添加命令行选项。这个方法允许我们为命令行应用程序定义可接受的选项和参数。
以下是一个简单的例子,演示如何在ThinkPHP8中为命令行应用程序添加一个选项:
<?php
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
class Hello extends Command
{
// 命令的名称及用途描述
protected function configure()
{
// 命令行输入的命令为 php think hello
// 添加一个名为 'name' 的选项,该选项的简短描述为 'n',其接受一个参数
$this->addOption('name', 'n', Option::VALUE_OPTIONAL, 'Your name');
}
// 命令的处理逻辑
protected function execute(Input $input, Output $output)
{
// 获取用户输入的选项值,如果没有指定则为默认值 'ThinkPHPer'
$name = $input->getOption('name') ?: 'ThinkPHPer';
// 输出结果
$output->writeln("Hello, {$name}!");
}
}
命令行选项
use think\\console\\input\\Option;
// 无需传值
Option::VALUE_NONE = 1;
// 必须传值
Option::VALUE_REQUIRED = 2;
// 可选传值
Option::VALUE_OPTIONAL = 4;
// 传数组值
Option::VALUE_IS_ARRAY = 8;
在上述代码中,我们定义了一个名为Hello
的命令,并在configure
方法中使用addOption
方法添加了一个名为name
的选项。当用户运行此命令并传递--name
或者-n
参数时,程序将输出相应的问候语。如果用户没有提供这个选项,默认值将是'ThinkPHPer'
。
// 无需任何参数
php think hello
// 使用全名参数
php think hello --name admin
// 使用缩写
php think install -n admin