php 命令安装tp5,TP5 自定义命令详细命令行用法

很多时候需要使用命令行来执行php脚本,执行单独的php的脚本没有什么太大的问题,如果想要执行使用TP5框架项目的某个文件,可能会因相关文件无法加载而不能执行。

好在TP5框架中有命令行的功能,我们可以使用TP5的命令行调用我们自定义的命令,从而操作TP5项目中的代码。

定义命令

先简单的定义一个命令,建立一个命令行测试类:

namespace app\base\command;

use think\console\Command;

use think\console\Input;

use think\console\Output;

class Test extends Command

{

protected function configure()

{

$this->setName('test');//定义命令的名字

}

protected function execute(Input $input, Output $output)

{

$output->writeln('Hello World');//在命令行界面输出内容

}

}

现在来说一下这2个方法的功能:

configure()

用来设置自定义命令属性,可以配置命令名字、命令参数、命令选项、命令描述

execute()

用来设置执行命令的相关操作,通过Input,Output输入输出达到命令行和代码的交互。

配置命令

设置完了自定义命令,还要在application/command.php中配置一下才行哦:

return [

'app\base\command\Test'

];

一个命令对应一个命令类,对应一个配置。也就是说想定义多个命令,就需要建立多个类文件,每个定义的命令都要在这里配置才能生效。

使用命令

首先进入项目的根目录,然后打开cmd,先使用php think 命令可以看到:

php 命令安装tp5,TP5 自定义命令详细命令行用法_第1张图片

在Available commands 这一栏里,看到我们刚才的定义的test命令。

现在执行这个命令:

php think test

可以看到返回:

Hello World

这样我们定义的命令就使用成功了。

命令参数

上面的命令似乎只能执行一些简单的操作,这次我们给命令添加几个参数,增加命令的功能性。

protected function configure()

{

$this->setName('test') //定义命令的名字

->setDescription('This is my command') //定义命令的描述

->addArgument('name') //增加一个名字参数

->addArgument('age'); //增加一个年龄参数

}

protected function execute(Input $input, Output $output)

{

//获取输入的参数

$name = $input->getArgument('name');

$age = $input->getArgument('age');

//输出获得的参数

$output->writeln("My name is $name ,age is $age");

}

在命令行输入:

php think test wuhen 20

可以看到返回 :

My name is wuhen,age is 20

命令选项

我们的命令虽然可以传入参数了,不过可以增加 选项 进一步充分我们命令的功能。

protected function configure()

{

$this->setName('calculate') //定义命令的名字

->setDescription('This is my command') //定义命令的描述

->addArgument('number1') //参数1

->addArgument('number2') //参数2

->addOption('add') //定义相加的选项

->addOption('sub'); //定义相减的选项

}

protected function execute(Input $input, Output $output)

{

//获取输入的2个参数

$number1 = $input->getArgument('number1');

$number2 = $input->getArgument('number2');

//加法操作

if($input->hasOption('add')){

$result = $number1 + $number2;

$output->writeln("$number1 + $number2 = $result");

}

//减法操作

if($input->hasOption('sub')){

$result = $number1 - $number2;

$output->writeln("$number1 - $number2 = $result");

}

}

在命令行输入:

php think calculate 20 30 --add

可以看到返回 :

20 + 30 = 50

在命令行输入:

php think calculate 20 30 --sub

可以看到返回:

20 - 30 = -10

标签:定义,自定义,命令,TP5,命令行,input,php,think

来源: https://blog.csdn.net/weixin_41715751/article/details/102741861

你可能感兴趣的:(php,命令安装tp5)