YII2框架使用控制台命令的方法分析
发布:smiling 来源: PHP粉丝网 添加日期:2022-02-21 09:31:10 浏览: 评论:0
本文实例讲述了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下的命令行不会显示颜色。
Tags: YII2控制台命令
- 上一篇:YII2框架中日志的配置与使用方法实例分析
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)