YII2框架使用控制台命令的方法分析


Posted in PHP onMarch 18, 2020

本文实例讲述了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;
  }
}

运行结果如下:

YII2框架使用控制台命令的方法分析

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

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

PHP 相关文章推荐
php5 图片验证码实现代码
Dec 11 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
php使用codebase生成随机数
Mar 25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
php+ajax注册实时验证功能
Jul 20 PHP
PHP实现文件上传下载实例
Oct 18 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 #PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 #PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 #PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 #PHP
Laravel框架下的Contracts契约详解
Mar 17 #PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 #PHP
PHP代码加密的方法总结
Mar 13 #PHP
You might like
Terran兵种介绍
2020/03/14 星际争霸
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
实现PHP搜索加分页
2016/10/12 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
PHP实现简易计算器功能
2020/08/28 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
JS中数据结构之栈
2019/01/01 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
vue实现信息管理系统
2020/05/30 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
强悍的Python读取大文件的解决方案
2019/02/16 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
工程管理专业毕业生自荐信
2014/01/24 职场文书
法学函授自我鉴定
2014/02/06 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
售票员岗位职责
2015/02/15 职场文书
葬礼主持词
2015/07/02 职场文书