php yii2 cli 参数,YII2框架使用控制台命令的方法分析

本文实例讲述了YII2框架使用控制台命令的方法。分享给大家供大家参考,具体如下:

有些时候我们需要通过crontab在后台跑一些定时脚本,这时候就需要用到控制台命令了。

我们在commands目录下创建TestController.php,当然脚本的位置是可以随意指定的,只需要在config/console.php中配置好就行。

$config = [

'controllerNamespace' => 'app\commands',

];

TestController.php代码如下:

namespace app\commands;

use YII;

use yii\console\Controller;

use yii\console\ExitCode;

use yii\helpers\Console;

//注意控制台程序必须继承自yii\console\Controller

class TestController extends Controller

{

public $param1;

public $param2;

public $param3;

//指定用于控制台的选项

public function options($actionID)

{

return [

'param1',

'param2',

'param3',

];

}

//如果这些选项名称太长,可以取个短的别名

public function optionAliases()

{

return [

'p1' => 'param1',

'p2' => 'param2',

'p3' => 'param3',

];

}

// 定义控制台运行的方法

// yii test/test1 -p1=hello -p2=world -p3=!!!

public function actionTest1()

{

echo $this->param1, ' ', $this->param2, ' ', $this->param3, "\n";

return ExitCode::OK;

}

// 我们可以获取控制台传过来的参数

// 注意,函数第一个参数,对应控制台传过来的第一个参数,依次类推,不要把顺序搞错了。

// yii test/test2 aa bb cc

public function actionTest2($p1 = '', $p2 = '', $p3 = '')

{

echo $p1, ' ', $p2, ' ', $p3, "\n";

return ExitCode::OK;

}

// 当然控制台也可以一次传多个数据过来,这就需要把函数参数声明为一个array

// 控制台传参时就需要把传递的数据通过逗号连接起来,YII2通过处理变成数组

// yii test/test3 aa,bb,cc

public function actionTest3(array $arr)

{

echo implode('--', $arr), "\n";

return ExitCode::OK;

}

// 控制台格式和颜色的设置

// yii test/test4

public function actionTest4()

{

//用于控制台输出

$this->stdout('hello', Console::FG_RED);

$this->stdout('world', Console::FG_GREEN);

$this->stdout('!!!', Console::FG_BLUE);

echo "\n";

$hello = $this->ansiFormat('hello', Console::FG_RED);

$world = $this->ansiFormat('world', Console::FG_GREEN);

$sigh = $this->ansiFormat('!!!', Console::FG_BLUE);

echo $hello, ' ', $world, ' ', $sigh, "\n";

return ExitCode::OK;

}

}

运行结果如下:

40ecc7125b1f2d34be3b4d66b9b5a770.png

注意,windows下的命令行不会显示颜色。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值