热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

YII2中使用控制台命令

有些时候我们需要通过crontab在后台跑一些定时脚本,这时候就需要用到控制台命令了。我们在commands目录下创建TestController.php,当然脚本的位置是可以随意指定的,只需要在

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

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

$cOnfig= [
	'controllerNamespace' => 'app\commands',
];

TestController.php代码如下:

 '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下的命令行不会显示颜色。


推荐阅读
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • MybatisPlusSQL打印控制台
    #applicaton.yml配置mybatis-plus:configuration:#是否将sql打印到控制面板(该配置会将sql语句和查询的结果都打印到控制台)log-imp ... [详细]
  • C语言函数的定义及其含义
    本文目录一览:1、C语言函数的特点及其定义?2 ... [详细]
  • 补丁是一个文本文件,其内容类似于gitdiff,但与代码一样,它也有关于提交的元数据;例如提交ID,日期,提交消息等。我们可以从提交创建一个补丁,而其他人可以将它们 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 为什么即使Linux服务器的socket关闭,客户端仍能调用一次send函数?
    要弄清这个问题,首先需要知道调用send()发送数据时,发生了什么。当调用send()发送数据时,并不是直接将数据发送到网络中,而是先将待发送的数据放到socket发送缓冲区中,然 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有