YII2使用控制台命令方法是什么?
Admin 2021-05-08 群英技术资讯 1888 次浏览
YII2框架如何使用控制台命令?YII2框架是一个高性能、高效率的PHP框架,这篇文章给大家分享的是关于YII2框架使用控制台命令的方法,感兴趣的朋友可以了解一下,下面我们一起看看。
有些时候我们需要通过crontab在后台跑一些定时脚本,这时候就需要用到控制台命令了。
我们在commands目录下创建TestController.php,当然脚本的位置是可以随意指定的,只需要在config/console.php中配置好就行。
$config = [ 'controllerNamespace' => 'app\commands', ];
TestController.php代码如下:
<?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;
}
}
运行结果如下:

注意,windows下的命令行不会显示颜色。
现在大家对于YII2使用控制台命令的方法应该都有所了解了,上述示例有一定的借鉴价值,有需要的朋友可以参考一下,希望对大家学习有帮助。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
抽象类和接口的定义和应用是怎样,两者什么关系?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
tp5框架的路由原理是什么?很多新手对于路由不是很清楚,下面小编就大家通俗化的介绍一下,对tp5框架的路由原理和用法感兴趣的朋友可以看看这篇,下面就跟随小编一起来看看吧。
这篇文章主要介绍了Laravel5.1 框架模型远层一对多关系,结合实例形式分析了laravel5.1框架模型远层一对多关系相关原理、实现方法与操作注意事项,需要的朋友可以参考下
swoole提供了类似JavaScript的setInterval/setTimeout异步高精度定时器,粒度为毫秒级。用法:$server->tick(1000, function() use ($server, $fd) {});。
文本主要给大家分享的是关于php依赖注入容器的内容,对于新手来说依赖注入容器可能比较难理解,文本有对依赖注入容器理解以及具体代码,有这方面学习需要的朋友可以参考参考。下面我们一起来了解一下。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008